Как узнать загруженность CPU известным процессом?
От: mDmitriy Россия  
Дата: 17.04.18 16:30
Оценка:
Всем привет!

Сабж, собственно... Т.е., тот процент, который показывает "Диспетчер задач" в колонке "ЦП"

По Гуглу нарыл вариант считать 2 времени процесса и делить на временной интервал, типа такого:
Stopwatch _stopwatch = new Stopwatch();
...
var process = Process.GetProcessById(<id нужного процесса>)
_stopwatch.Reset();
var begin = process.TotalProcessorTime;
_stopwatch.Start();
Thread.Sleep(1000);
_stopwatch.Stop();
return (process.TotalProcessorTime - begin).TotalMilliseconds / _stopwatch.ElapsedMilliseconds;

врет безбожно

Со счетчиком производительности тоже не прокатывает
Предлагается
var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", process.ProcessName);
return cpuCounter.NextValue();

Но process.ProcessName счетчик не жрет в качестве InstanceName — говорит, не найдено сетевое имя

WMI очень не хочется, есть более другие варианты?
Спасибо...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.