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"); } 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(); } } }