我正在寻找一种更好的方法来获得来自多个系统的 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);
最佳答案
我个人会选择 Win32_PerfRawData_PerfOS_Processor类,因为它更精确。您将需要同时查询 PercentProcessorTime 和 TimeStamp_Sys100NS . Here你可以找到确切的公式。
关于WMI 查询 - CPU LoadPercentage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9598730/