用C#写一个监控windows所有进程的CPU使用率及内存使用量
时间: 2024-02-09 21:13:19 浏览: 218
好的,下面是用C#实现监控Windows所有进程的CPU使用率及内存使用量的代码:
```csharp
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace ProcessMonitor
{
class Program
{
static void Main(string[] args)
{
// 获取所有进程
Process[] processes = Process.GetProcesses();
// 用字典存储进程名和对应的进程对象
Dictionary<string, Process> processDict = new Dictionary<string, Process>();
foreach (Process process in processes)
{
processDict.Add(process.ProcessName, process);
}
// 无限循环,每隔1秒输出一次所有进程的CPU使用率和内存使用量
while (true)
{
Console.Clear();
Console.WriteLine("进程名\tCPU使用率\t内存使用量");
foreach (string processName in processDict.Keys)
{
Process process = processDict[processName];
// 获取CPU使用率和内存使用量
float cpuUsage = process.TotalProcessorTime.Ticks / (float)TimeSpan.TicksPerSecond;
float memoryUsage = process.WorkingSet64 / (float)1024 / 1024;
Console.WriteLine("{0}\t{1:0.00}%\t\t{2:0.00}MB", processName, cpuUsage, memoryUsage);
}
// 等待1秒
System.Threading.Thread.Sleep(1000);
}
}
}
}
```
这段代码通过Process类获取所有进程,然后循环输出所有进程的CPU使用率和内存使用量。注意,CPU使用率需要通过TotalProcessorTime属性获取,内存使用量需要通过WorkingSet64属性获取。在循环输出完所有进程信息后,使用Thread.Sleep方法让程序等待1秒,再循环输出一次。这样就实现了对Windows所有进程的监控。
阅读全文