处理器用法

Ale*_*ger -1 .net c# performance wmi processor

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

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

Han*_*ant 6

的PerformanceCounter是一个非常获取这些信息的低成本方式.与WMI相反,它会为您提供完全相同的信息,但由于它在COM之上运行,因此会产生大量开销.

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

TaskMgr或Permon中显示的CPU使用百分比是一秒钟以上的计算值.运行时间为100%的时间与关闭时间的比率.间隔长度非常重要.你做的越短,计算值就会越"跳跃".直到连续两次调用NextValue(),你总是得到100%.

长话短说:你需要一个计时器.让它模拟一下您在PerfMon和TaskMgr中看到的内容.