WMI查询 - CPU LoadPercentage

时间:2012-03-07 09:26:17

标签: wmi wmi-query

我正在寻找一种更好的方法来使用来自多个系统的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);

1 个答案:

答案 0 :(得分:4)

就个人而言,我会选择Win32_PerfRawData_PerfOS_Processor课程,因为它更准确。您需要同时查询 PercentProcessorTime TimeStamp_Sys100NS Here您可以找到确切的公式。