Рассчитать использование ЦП для процесса Windows?

Учитывая идентификатор процесса, как я могу получить загрузку процессора из этого процесса с помощью C #?

Я пробовал использовать PerformanceCounter, как описано в c # вычислить использование ЦП для конкретного приложения

Я также попытался вручную взять два значения общего времени процессора для процесса в пределах временного интервала и разделить дельта-время процессора на дельта-общее время.

Поначалу кажется, что оба эти метода работают нормально, но если я помещаю свое приложение рядом с диспетчером задач Windows, мое приложение всегда показывает примерно вдвое больше, чем диспетчер задач. Я пробовал обновляться с разными временными шагами от 10 мс до 10 с и все время получать один и тот же результат.

Хм, когда я это написал, понял, что это может быть какая-то проблема с двумя ядрами ...


person Community    schedule 01.09.2009    source источник


Ответы (1)


Если у вас два ядра, диспетчер задач сообщит, что 100% использование 1 ЦП равно 50%. Вероятно, это твоя проблема.

person Mark P Neyer    schedule 01.09.2009