Всем привет!
Сабж, собственно... Т.е., тот процент, который показывает "Диспетчер задач" в колонке "ЦП"
По Гуглу нарыл вариант считать 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 очень не хочется, есть более другие варианты?
Спасибо...