计算Windows进程的CPU使用率?

给定一个进程ID,我怎样才能从这个进程的C#加载CPU的负载?

我已经尝试使用PerformanceCounter在c#中所述计算特定应用程序的CPU使用率

我还尝试在一个时间范围内手动取得进程的总CPU时间的两个值,并将delta-cpu-time与delta-total-time分开。

这两种方法似乎一开始工作正常,但如果我把我的应用程序旁边的Windows任务pipe理器我的应用程序总是显示约两倍的任务pipe理器。 我试图用10ms到10sec的各种时间步长进行更新,并一直得到相同的结果。

嗯,当我写这个时,意识到这可能是某种双核问题。

Solutions Collecting From Web of "计算Windows进程的CPU使用率?"