2012-03-07 16 views
6

複数のシステム(異なるCPUなどを意味します)からWMIを使用してCPU負荷をパーセントで取得するより良い方法を探しています。 私のコードは動作していますが、%ですべてのCPU使用率を乗り越えるより良い方法があると思います。WMIクエリ - CPU LoadPercentage

アイデア?

ありがとうございます!

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

それははるかに正確であるので、個人的に私はWin32_PerfRawData_PerfOS_Processorクラスのために行くと思います。 PercentProcessorTimeTimeStamp_Sys100NSの両方を照会する必要があります。 Hereあなたは正確な数式を見つけることができます。