Я пытаюсь получить NextValue
класса PerformanceCounter
, используя PhysicalDisk
. Некоторая причина, по которой я не могу понять, почему, она возвращает 0
каждый раз.NextValue() return 0
PerformanceCounter pcDiskTime = new PerformanceCounter("PhysicalDisk", "% Disk Time", "_Total");
Single sinDisk = pcDiskTime.NextValue(); //returns 0.0
Используя выше и вызывая pcDiskTime.NextValue
возвращение 0
-х. У меня есть другие счетчики, которые отлично работают и возвращают то, что мне нужно.
.RawValue
действительно возвращает что-то, но это не значение, которое мне нужно. Есть ли что-то очевидное, чего я не делаю?
Примечание: Я проверял через Performance Monitor
, это действительно правильная категория, имя счетчика и имя экземпляра. Я также пытался позвонить .NextValue()
дважды, как иногда первый возврат 0.0
, но это не поможет.
MSDN: 'Если вычисленное значение счетчика зависит от двух счетчиков, первая операция чтения возвращает 0.0. 'Если вы каждый раз создаете новый счетчик, NextValue всегда будет первым вызовом (не уверен, что это тот, который зависит от 2-х прочитанных) – Plutonix
@Plutonix хорошая точка, некоторые из моих других счетчиков требуют двух чтений, я попробовал это ; забыл упомянуть об этом в моем посте. Я буду обновлять, спасибо за предложение. – Codexer