2016-05-03 1 views
0

Использование кода, как этотКак получить использование ЦП в качестве taskmgr? C#

PerformanceCounter cpu_utilized = new PerformanceCounter("Processor", @"% Processor Time", @"_Total"); 
CounterSample a1 = cpu_utilized.NextSample(); 
Thread.Sleep(500); //tried other values, same result 
float a = CounterSample.Calculate(a1, cpu_utilized.NextSample()); 
string str = "CPU USAGE %: " + a; 
System.Console.Out.WriteLine(str); 

Результат такой же, как perfmon.exe счетчика, но отличается от Урочных значений

Я хочу, чтобы получить полное использование системы центрального процессора, как показывают по Урочному, уже пыталась используя только NextValue(), но результат тот же ...

Любые предложения о том, как это сделать? Я должен найти какой-нибудь другой счетчик и добавить к нему что-нибудь?

Дополнительная информация: Я использую процессор с 4 физических ядер и 8 логических ядер для Windows 10 Perfmon показывает около 36% Урочная показывает около 48%

ответ

0

Паулу, попробуйте взглянуть на process hacker. Захват использования ЦП будет одной из проблем, те, которые касаются рабочей области, физической памяти, пейджинга, tlb и т. Д., В десятки раз сложнее.

Исходный код написан на языке C, а не на C#. Однако вы можете использовать его легко. Я не эксперт на C#, но я вполне уверен, что он использует C API за кулисами, если есть такой api для языка.

Смежные вопросы