using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MvvmScaffoldFrame48.DLL.WindowsTools
{
public class SystemMonitorClass
{
private readonly PerformanceCounter _cpuCounter;
private readonly PerformanceCounter _ramCounter;
Stopwatch stopwatch = Stopwatch.StartNew();
private float HisCPUCounter = 0;
public SystemMonitorClass()
{
_cpuCounter = new PerformanceCounter(
"Processor", "% Processor Time", "_Total");
_ramCounter = new PerformanceCounter(
"Memory", "Available MBytes");
}
///
/// 获取CPU使用率
///
///
public float GetCpuUsage()
{
stopwatch.Stop();
if (stopwatch.ElapsedMilliseconds > 1000)
{
stopwatch.Restart();
HisCPUCounter = _cpuCounter.NextValue();
}
else
{
stopwatch.Start();
}
return HisCPUCounter;
}
///
/// 获取可用内存
///
///
public float GetAvailableMemory()
{
return _ramCounter.NextValue();
}
}
}