單線程使用 CreateWaitableTimer 和 SetWaitableTimer 設置定時週期

原文及更多內容:http://yysource.sourceforge.net/?p=91

一開始的想法是用 CreateWaitableTimer 和 SetWaitableTimer 設置一個定時器,要求每500毫秒報時一次。

代碼中用 

  代碼1:while (WaitForSingleObject(hTimer, INFINITE) == WAIT_OBJECT_0){...} 

來等待定時器。

其中 CreateWaitableTimer 函數有些需要說明的地方。bManualReset 這個參數的作用,決定了定時器是人工重置的,還是自動重置。

  如果是設爲TRUE,那麼只要第一次被激活後,以後不論何時,代碼1中 WaitForSingleObject 返回的結果都是 WAIT_OBJECT_0。

  如果設爲FALSE,那麼第一次激活後,立刻失效,以後每隔500毫秒纔會被激活一次,即,代碼1中 WaitForSingleObject 每隔500毫秒纔會返回一次 WAIT_OBJECT_0 。



發佈了190 篇原創文章 · 獲贊 32 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章