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 に答える