我试图弄清楚如何获取特定进程的CPU使用率,但只能找到与总体 CPU使用率有关的信息。

有谁知道如何提取特定应用程序的当前CPU使用率百分比?

最佳答案

性能计数器-进程-处理器时间百分比。

小样代码让您有一个主意:

using System;
using System.Diagnostics;
using System.Threading;

namespace StackOverflow
{
    class Program
    {
        static void Main(string[] args)
        {
            PerformanceCounter myAppCpu =
                new PerformanceCounter(
                    "Process", "% Processor Time", "OUTLOOK", true);

            Console.WriteLine("Press the any key to stop...\n");
            while (!Console.KeyAvailable)
            {
                double pct = myAppCpu.NextValue();
                Console.WriteLine("OUTLOOK'S CPU % = " + pct);
                Thread.Sleep(250);
            }
        }
    }
}

基于进程ID 查找实例的注意事项:

我不知道有什么更好的方法,希望有人能做到。如果没有,这是给定进程ID和进程名称的一种方法,可以为您的进程找到正确的实例名称。

"ID Process"家族下还有一个称为"Process"的性能计数器(PC)。它返回实例的PID。因此,如果您已经知道名称(即“chrome”或“myapp”),则可以测试每个实例,直到找到与PID匹配的对象为止。

每个实例的命名都很简单:“myapp”,“myapp#1”,“myapp#2” ...等。
...  new PerformanceCounter("Process", "ID Process", appName, true);

一旦PC的值等于PID,就可以找到正确的appName。然后,您可以将该appName用于其他计数器。

09-10 16:13