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