7

我正在寻找一种更好的方法来获取来自多个系统(意味着不同的 CPU 等)的 WMI 的 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);
4

1 回答 1

6

我个人会选择Win32_PerfRawData_PerfOS_Processor类,因为它更精确。您将需要同时查询PercentProcessorTimeTimeStamp_Sys100NS在这里你可以找到确切的公式。

于 2012-03-22T11:29:03.517 回答