How to get the CPU Usage in C#?


I want to get the overall total CPU usage for an application in C#. I've found many ways to dig into the properties of processes, but I only want the CPU usage of the processes, and the total CPU like you get in the TaskManager.

How do I do that?

12/27/2009 4:12:01 PM

You can use the PerformanceCounter class from System.Diagnostics.

Initialize like this:

PerformanceCounter cpuCounter;
PerformanceCounter ramCounter;

cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
ramCounter = new PerformanceCounter("Memory", "Available MBytes");

Consume like this:

public string getCurrentCpuUsage(){
            return cpuCounter.NextValue()+"%";

public string getAvailableRAM(){
            return ramCounter.NextValue()+"MB";
1/23/2017 11:35:26 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow