这两天抽空粗看了一下MSRA上几位大牛写的《编程之美》一书,感觉挺有意思,昨天使用C#尝试了一下解决书中开篇提到的“指挥CPU占用率曲线”的问题。
粘上源代码,以备日后查找:
- public void CtrlCPU(float level)
- {
- PerformanceCounter m_performanceCounter = null;
- m_performanceCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
- if (m_performanceCounter == null)
- return;
- while (m_runing)
- {
- if (m_performanceCounter.NextValue() > level)
- System.Threading.Thread.Sleep(10);
- }
- }
调用时传递参数level = 50f
运行结果如图
可以看出,基本上能够把CPU的占用率曲线控制在50%的水平线上,可惜曲线不够平滑,今后有空再研究研究。另外,我还在尝试能否在双核CPU或多CPU上达到类似的效果