C# Developers' Journal (original) (raw)

More Performance Counters Could anyone please help me with .NET performance counters? I am trying to read the % Processor Time of all of the currently running processes on the system. Here is my code. Assume that thisInstances is a string array containing elements, each of which is one process running on the system (I checked this myself using the debugger):

foreach (string thisInstance in thisInstances) { thisPerfCounter = new PerformanceCounter(); thisPerfCounter.CategoryName = "Process"; thisPerfCounter.CounterName = "% Processor Time"; thisPerfCounter.InstanceName = thisInstance; thisPerfCounter.NextValue();

System.Windows.Forms.MessageBox.Show(thisInstance + ": " + thisPerfCounter.NextValue().ToString());
thisPerfCounter.Dispose();
thisPerfCounter = null;
thisProcess = null;

}

I see a messagebox for every process on the system, but each and every one has a value of 0. What gives? I've read articles, copied code from console applications that actually work, etc. I'm not sure what I'm doing wrong.

Any suggestions?