对于低于性能的计数器,我总是得到%Processor Time为0,即使我的CPU显示100%使用率,这可能是什么原因?
PerformanceCounter pc = new PerformanceCounter("Processor", "% Processor Time", "_Total", true);
Console.WriteLine(pc.NextValue());
最佳答案
通过NextValue()
documentation中的注释进行解释:
如果计数器的计算值取决于两次计数器读取,则第一次读取操作将返回0.0。重置性能计数器属性以指定其他计数器等效于创建新的性能计数器,并且使用新属性进行的第一次读取操作将返回0.0。建议两次调用NextValue方法之间的延迟时间为一秒,以允许计数器执行下一个增量读取。
因此,如果您将代码更改为:
while (true)
{
Console.WriteLine(pc.NextValue());
Thread.Sleep(1000);
}
...然后您将看到适当的值。
关于c# - PerformanceCounter CPU使用率值始终为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44280749/