用任務管理器畫CPU正弦曲線


這個最初是在microsoft的《編程之美》中看到的,用你的程序來控制CPU的使用率。

首先是要求寫一個用來實現CPU使用率為50%程序。

這個還是很好實現的,只要讓你的程序忙的時間課空閑時間對半就可以了。

這里主要要用到兩個函數:GetTickCount以及Sleep。

GetTickCount函數據我所知在2000版的msdn中是查不到的,不過功能很簡單,就是返回系統啟動到現在所經歷的毫秒數。

有了這個函數,就能夠較為准確的獲得一個程序運行時間,來控制程序的睡眠時間。

這個是實際效果圖:

這個圖片的效果就比較慘了,這個程序是我用來畫CPU正弦曲線,看這個圖片依稀能看出來點正弦的意思……

在家里的計算機畫的曲線還是有模有樣的,台式機,xp系統。如果你的電腦配置不錯,后台程序不多的話,把下面的代碼編譯運行效果應該也會不錯~

當然,如果你想要50%畫一條直線,就很簡單了,持續運行500ms,Sleep500ms就Ok啦。

另外需要注意的是,任務管理器的CPU曲線更新時間大約是1s,所以以1s為周期來進行CPU使用率的控制就可以了。

程序代碼:

 1 #include <iostream>
 2 #include <windows.h>
 3 #include <cmath>
 4 
 5 #define PI 3.14
 6 using namespace std;
 7 
 8 int main()
 9 {
10     int starttime;
11     int busytime;
12     int sinval = 0;
13     while(1)
14     {
15         starttime = GetTickCount();
16         busytime = (int)(500 * sin(float((sinval) %= 30) / 30 * 2 * PI)) + 500;
17         cout << busytime << endl;
18         sinval++;
19         while(GetTickCount() - starttime < busytime)
20             ;
21         Sleep(1000 - busytime);
22     }
23     return 0;
24 }

代碼很簡明,運行下吧~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM