-1

可能重复:
使用 WMI 和 C# 的 CPU 使用率

如何使用 WMI 在 C# (.NET) 中检索 CPU 使用率百分比?是的,没有任何愚蠢的 PerformanceCounter。

4

1 回答 1

6

PerformanceCounter 是一种成本非常低的检索此信息的方法。与 WMI 不同,它会为您提供完全相同的信息,但会产生大量开销,因为它运行在 COM 之上。

它和PC有完全相同的问题,这就是为什么我猜你认为它是“愚蠢的”。CPU 使用百分比是在一段时间内测量的。实际 CPU 使用率为 0 或 100%,CPU 永远不会故意以较低的速率运行。当有一个线程有工作要做时,它会全速运行代码。如果没有工作要做,你的台式机的正常状态,那么 CPU 用 HLT 指令断电。它被时钟中断再次唤醒。

TaskMgr 或 Permon 中显示的 CPU 使用百分比是一秒内的计算值。以 100% 运行的时间量与关闭时间量的比率。间隔长度非常重要。你做的越短,计算的值就越“跳跃”。连续调用 NextValue() 两次,您将始终获得 100%。

长话短说:你需要一个计时器。花一秒钟时间模拟您在 PerfMon 和 TaskMgr 中看到的内容。

于 2010-11-09T15:22:30.107 回答