Why the cpu performance counter kept reporting 0% cpu usage?

The first iteration of he counter will always be 0, because it has nothing to compare to the last value. Try this:

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() + "%");

Then you should see some data coming out. It’s made to be seen in a constant graph or updated scenario…that’s why you don’t come across this problem often.

Here’s the MSDN reference:

The method nextValue() always returns
a 0 value on the first call. So you
have to call this method a second
time.

Leave a Comment