我正在寻找一种更好的方法来从多个系统(表示不同的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);

最佳答案

我个人会参加Win32_PerfRawData_PerfOS_Processor类,因为它要精确得多。您将需要同时查询 PercentProcessorTime TimeStamp_Sys100NS Here您可以找到确切的公式。

关于WMI查询-CPU LoadPercentage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9598730/

10-10 13:24