为了获得CPU的占用率以了解机器的使用情况,编写了一个CPUHeler类。
使用方法
CPUHelper ch = new CPUHelper();
for(int i = 0; i < 4; i++)
{
Console.Write(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "\t");
foreach(float p in ch.GetCPUUsage())
{
Console.Write(p + "\t");
}
}
输出
2019/06/05 08:04:56 45.18 09.22 33.86 17.18 25.33 17.04 25.33 16.74 27.84 49.96 47.18 24.67
2019/06/05 08:04:57 19.10 01.55 14.34 26.96 27.03 07.90 14.25 00.00 11.08 38.13 14.25 38.13
2019/06/05 08:04:58 28.76 05.02 19.26 43.01 22.43 08.18 24.01 05.02 12.93 17.60 14.52 39.78
2019/06/05 08:04:59 13.73 01.05 07.34 36.29 15.58 02.84 12.40 00.00 20.36 12.40 09.21 31.51
2019/06/05 08:05:00 10.31 03.92 16.60 30.63 14.77 03.82 11.71 00.67 11.71 32.20 05.40 36.93
源代码
public class CPUHelper
{
// 用于获得CPU信息
PerformanceCounter[] counters;
public CPUHelper()
{
// 初始化计数器
counters = new PerformanceCounter[System.Environment.ProcessorCount];
for (int i = 0; i < counters.Length; i++)
{
counters[i] = new PerformanceCounter("Processor", "% Processor Time", i.ToString());
counters[i].NextValue(); // 这里是为了获得CPU占用率的值
}
}
// 返回所有核心的CPU的占用率的值
public double[] GetCPUUsage()
{
double[] info = new double[counters.Length];
for (int i = 0; i < counters.Length; i++)
info[i] = counters[i].NextValue();
return info;
}
}