C# 计算Windows进程的CPU使用率?

C# 计算Windows进程的CPU使用率?,c#,.net,windows,process,performancecounter,C#,.net,Windows,Process,Performancecounter,给定一个进程ID,如何使用C#从该进程获取cpu负载 我已尝试使用PerformanceCounter,如中所述 我还尝试在一个时间范围内手动获取进程总cpu时间的两个值,并将增量cpu时间除以增量总时间 这两种方法一开始似乎都很好,但是如果我把我的应用程序放在windows任务管理器旁边,我的应用程序的显示量总是任务管理器的两倍左右。我试着用从10毫秒到10秒的不同时间步长进行更新,并一直得到相同的结果 嗯,当我写这篇文章时意识到这可能是某种双核问题…如果你有两个核,任务管理器将报告100%的

给定一个进程ID,如何使用C#从该进程获取cpu负载

我已尝试使用PerformanceCounter,如中所述

我还尝试在一个时间范围内手动获取进程总cpu时间的两个值,并将增量cpu时间除以增量总时间

这两种方法一开始似乎都很好,但是如果我把我的应用程序放在windows任务管理器旁边,我的应用程序的显示量总是任务管理器的两倍左右。我试着用从10毫秒到10秒的不同时间步长进行更新,并一直得到相同的结果


嗯,当我写这篇文章时意识到这可能是某种双核问题…

如果你有两个核,任务管理器将报告100%的CPU使用率为50%。这可能是你的问题