给定进程 ID,如何使用 C# 从该进程获取 CPU 负载?
我已尝试使用 c# calculate CPU usage for a specific application 中描述的 PerformanceCounter
我还尝试在一个时间范围内手动获取进程总 cpu 时间的两个值,并将 delta-cpu-time 除以 delta-total-time。
这两种方法一开始似乎都可以正常工作,但如果我将我的应用程序放在 Windows 任务管理器旁边,我的应用程序总是显示大约是任务管理器显示的两倍。我尝试使用从 10 毫秒到 10 秒的各种时间步长进行更新,并始终获得相同的结果。
嗯,当我写这篇文章时意识到这可能是某种双核问题......
最佳答案
如果您有两个内核,任务管理器会将 1 个 CPU 的 100% 使用率报告为 50%。这可能就是您的问题所在。
关于c# - 计算 Windows 进程的 CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1364801/