【发布时间】:2016-09-15 08:19:15
【问题描述】:
我正在尝试为后台进程获取 CPU 负载; Background process
使用性能计数器
PerformanceCounter ramCounter = new PerformanceCounter("Process", "Working Set", process.ProcessName);
PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", process.ProcessName);
ramCounter.NextValue();
cpuCounter.NextValue();
while (true)
{
Thread.Sleep(500);
double ram = ramCounter.NextValue();
double cpu = cpuCounter.NextValue();
Console.WriteLine("RAM: " + (ram / 1024 / 1024) + " MB; CPU: " + (cpu) + " %");
}
它在(应用程序)上表现不错,但在 Backgorund 每次都返回 0 时失败; 我很困惑; 为这些进程检索 CPU 负载的正确方法是什么?
【问题讨论】:
-
检查这个例子。 codeproject.com/Articles/10258/…
-
该进程的多个实例处于活动状态,它们都具有相同的名称。那么您实际监控的是哪一个? stackoverflow.com/a/9115662/17034
-
我正在运行 throw 所有这些,结果是相同的 0 cpu 负载; ` List
prc = runningNow.Where(x => x.ProcessName == txtApp.Text).ToList(); foreach(在 prc 中的进程){..`
标签: c# process load cpu performancecounter