程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 編寫程序 控制cpu占用率2

編寫程序 控制cpu占用率2

編輯:C#入門知識

前面一節講了通過簡單循環操作控制CPU 的占用率。文章鏈接:www.2cto.com/kf/201110/107456.html

然而, 通過調用系統的GetTickCount()函數可以獲得系統啟動到現在的時間值,通過這個時間值也可以控制系統的繁忙的時間片和空閒的時間片。讓系統一個時間片不停地做循環,一個時間片做休眠,這樣一秒鐘以後品均下來也可以讓 CPU的占用率接近50%。

 

代碼:

 
 
// cpu_2.cpp : Defines the entry point for the console application. 
// 
 
#include "stdafx.h" 
#include "windows.h" 
 
 
int _tmain(int argc, _TCHAR* argv[]) 

    const DWORD busyTime=10; 
    const DWORD idleTime=busyTime; 
 
    DWORD startTime=GetTickCount(); 
    while(true) 
    { 
        startTime=GetTickCount(); 
        while(GetTickCount()-startTime<=busyTime) 
        { 
            //IDLE 
        } 
        Sleep(idleTime); 
    } 
    return 0; 

 

設置空閒時間片和繁忙時間片的大小,然後交替執行兩個操作。通過GetTickCount()函數 獲得當前啟動的時間,然後不停地獲取系統啟動時間,計算和這個時間片的差值,當差值達到時間片以後,進入另外一個時間片操作。

執行效果如圖:

 \

 

這裡不知道為什麼因為CPU是雙核的,結果變成了一個核工作,一個核進行休眠了。可能還需要對雙核的CPU進行特殊的程序處理。在單核的CPU上應該沒有問題。

還望大家多多指教這個雙核的處理問題。

作者:Watkins.Song

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved