Windows程式設計 讀書筆記 – 計時器。

來源:互聯網
上載者:User

一、計時器工作原理:

    windows計時器是基於PC的硬體和ROM BIOS構造的計時器邏輯的一種相對簡單的擴充。

    對於每個擁有計時器的程式,windows儲存一個每次硬體計時器滴答減少的次數,當減少為0時,windows就在應用程式訊息佇列中放置一個WM_TIMER訊息,並將計數重新置為最初的值。

    WM_TIMER的位置是在應用程式的訊息佇列裡,所以他不是非同步,而是跟其他訊息一起參加排序。如果在接受到WM_TIMER訊息時,應用程式剛好在處理其他訊息,那WM_TIMER就要被延後執行。

    WM_TIMER和WM_PAINT一樣,訊息佇列中不能存在多個WM_TIMER訊息,如果一個新的WM_TIMER訊息加進隊列時,發現已經有一個了,那兩個就會合并為一個。

 

二、KillTimer後,計時器停止,但已經產生的WM_TIMER訊息會繼續執行。

 

三、用回呼函數處理計時器事務。

    static void CALLBACK TimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime);

    SetTimer(2,1000,TimerProc);

    回呼函數必須是靜態成員函數,或者是全域函數。

    用回呼函數後,OnTimer()函數裡的內容就不會被執行了。

 

四、不指定視窗和id的計時器

  int timerID = SetTimer(NULL,0,1000,TimerProc);

  KillTimer(NULL,timerID);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.