我正在寻找一种更好的方法来使用来自多个系统的WMI来获得CPU负载百分比(意味着不同的CPU等)。 我的代码正在运行,但我认为有一种更好的方法可以用百分比来克服所有CPU使用率。
有什么想法吗?
提前谢谢!
SelectQuery queryCpuUsage = new SelectQuery("SELECT * FROM Win32_Processor");
ManagementObjectSearcher cpuUsage = new ManagementObjectSearcher(scope, queryCpuUsage);
ManagementObjectCollection cpuUsageCollection = cpuUsage.Get();
foreach (ManagementObject queryObj in cpuUsageCollection)
{
iCPU++;
calcCPU = Convert.ToInt32(queryObj["LoadPercentage"]);
perCPU = perCPU + calcCPU;
}
perCPU = perCPU / iCPU;
cpuUsageCollection.Dispose();
Console.WriteLine("LoadPercentage CPU: {0}", perCPU);
答案 0 :(得分:4)
就个人而言,我会选择Win32_PerfRawData_PerfOS_Processor课程,因为它更准确。您需要同时查询 PercentProcessorTime 和 TimeStamp_Sys100NS 。 Here您可以找到确切的公式。