首页 > 解决方案 > 如何根据进程 ID 而不是进程名称获取 CPU 使用率

问题描述

所以我有这个应用程序,它启动了一个 java 进程的新实例。除了进程ID之外,没有其他方法可以区分我PC上运行的不同java进程。另外,假设我只是输入名称,如果进程,它会得到一个随机的,它就不会很好地工作,如果我将应用程序发送给我的朋友并且进程会有所不同怎么办。那会很糟糕。

所以我一直在研究如何根据特定的进程 ID 获取 CPU 使用率。我不知道该怎么做,我已经查看了这个Performance Counter类,但它似乎没有将进程 ID 作为其参数之一。

在给定特定进程 ID 的情况下,如何正确评估 CPU 使用率?

标签: c#.netprocessperformancecounter

解决方案


这可能会有所帮助

public static string GetProcessInstanceName(int PID)
{
    PerformanceCounterCategory cat = new 
PerformanceCounterCategory("Process");
var[] instances = cat.GetInstanceNames();
foreach (var instance in instances)
{
    using (PerformanceCounter cnt = new 
PerformanceCounter("Process", "ID Process", instance, 
true))
    {
        int val = System.Convert.ToInt32(cnt.RawValue);
        if (val == PID)
            return instance;
        }
    }
}

推荐阅读