C# 如何根据进程ID而不是进程名称获取CPU使用率

C# 如何根据进程ID而不是进程名称获取CPU使用率,c#,.net,process,performancecounter,C#,.net,Process,Performancecounter,我有一个应用程序,它启动了一个java进程的新实例。 除了进程ID之外,没有其他方法可以区分我的PC上运行的不同java进程。 还有,假设我只是把名字放进去,如果这个过程,它会得到一个随机的,结果就是不好,如果我把申请发送给我的朋友,那么这个过程会不同。那太糟糕了 因此,我一直在研究如何根据特定的进程ID获取CPU使用率。 虽然我不知道如何做到这一点,但我已经研究了性能计数器类,但它似乎没有将进程ID作为其参数之一 如何在给定特定进程ID的情况下正确评估CPU使用情况?这可能会有所帮助 publ

我有一个应用程序,它启动了一个java进程的新实例。 除了进程ID之外,没有其他方法可以区分我的PC上运行的不同java进程。 还有,假设我只是把名字放进去,如果这个过程,它会得到一个随机的,结果就是不好,如果我把申请发送给我的朋友,那么这个过程会不同。那太糟糕了

因此,我一直在研究如何根据特定的进程ID获取CPU使用率。 虽然我不知道如何做到这一点,但我已经研究了
性能计数器
类,但它似乎没有将进程ID作为其参数之一


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

这可能会有所帮助

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;
        }
    }
}