2

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

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

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

这两种方法一开始似乎都可以正常工作,但是如果我将我的应用程序放在 Windows 任务管理器旁边,我的应用程序总是显示大约是任务管理器的两倍。我尝试使用从 10 毫秒到 10 秒的各种时间步进行更新,并始终获得相同的结果。

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

4

1 回答 1

2

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

于 2009-09-01T22:00:38.597 回答