C#获取所有线程的CPU使用率
时间: 2023-12-01 17:53:45 浏览: 320
可以使用 System.Diagnostics 命名空间下的 Process 类来获取所有进程的 CPU 使用率,然后通过遍历每个进程的线程来计算出每个线程的 CPU 使用率。
下面是一个示例代码:
```
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
{
try
{
// 获取进程的 CPU 时间
TimeSpan processCpuTime = process.TotalProcessorTime;
// 获取进程的所有线程
ProcessThreadCollection threads = process.Threads;
// 计算每个线程的 CPU 使用率
foreach (ProcessThread thread in threads)
{
TimeSpan threadCpuTime = thread.TotalProcessorTime;
double cpuUsage = (threadCpuTime.TotalMilliseconds / processCpuTime.TotalMilliseconds) * 100;
Console.WriteLine("Process ID: {0}, Thread ID: {1}, CPU Usage: {2}%", process.Id, thread.Id, cpuUsage);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
}
Console.ReadLine();
}
}
```
这段代码会遍历所有进程,获取每个进程的 CPU 时间,然后遍历每个进程的线程,计算出每个线程的 CPU 使用率。
阅读全文