为什么CPU性能计数器持续报告0%的CPU使用率?

PerformanceCounter cpuload = new PerformanceCounter();

cpuload.CategoryName = "Processor";

cpuload.CounterName = "% Processor Time";

cpuload.InstanceName = "_Total";

Console.WriteLine(cpuload.NextValue() + "%");

输出始终为0%,而cpuload.RawValue就像736861484375左右,发生了NextValue()什么?

回答:

他的计数器的第一个迭代将始终为0,因为它没有与最后一个值进行比较的内容。尝试这个:

var cpuload = new PerformanceCounter("Processor", "% Processor Time", "_Total");

Console.WriteLine(cpuload.NextValue() + "%");

Console.WriteLine(cpuload.NextValue() + "%");

Console.WriteLine(cpuload.NextValue() + "%");

Console.WriteLine(cpuload.NextValue() + "%");

Console.WriteLine(cpuload.NextValue() + "%");

然后,您应该会看到一些数据。它可以在恒定的图表或更新的场景中看到…这就是为什么您不经常遇到此问题的原因。

这是MSDN参考:

方法nextValue()在第一次调用时始终返回0值。因此,您必须再次调用此方法。

以上是 为什么CPU性能计数器持续报告0%的CPU使用率? 的全部内容, 来源链接: utcz.com/qa/424354.html

回到顶部