WMI-запрос - CPU LoadPercentage - PullRequest
       8

WMI-запрос - CPU LoadPercentage

6 голосов
/ 07 марта 2012

Я ищу лучший способ получить загрузку ЦП в процентах с помощью WMI из нескольких систем (имеется в виду разные ЦП и т. Д.). Мой код работает, но я думаю, что есть лучший способ преодолеть все использование процессора в процентах.

Есть идеи?

Заранее спасибо!

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);

1 Ответ

4 голосов
/ 22 марта 2012

Лично я бы выбрал класс Win32_PerfRawData_PerfOS_Processor , потому что он намного точнее. Вам нужно будет запросить PercentProcessorTime и TimeStamp_Sys100NS . Здесь вы можете найти точную формулу.

...