CreateTimerQueueTimer

CreateTimerQueueTimer是一個WIN32API函式,用來創建一個計時器。此計時器在指定的到期時間調用一次回調函式,然後在每個指定的期限之後再次調用回調函式。

基本介紹

  • 中文名:創建定時器
  • 外文名:CreateTimerQueueTimer
函式原型,參數,返回值,

函式原型

BOOL CreateTimerQueueTimer(  
PHANDLE             phNewTimer,  
HANDLE              TimerQueue,  
WAITORTIMERCALLBACK Callback,  
PVOID               DueTime,  
DWORD               Period,  
DWORD               Flags,  
ULONG               Parameter
);

參數

phNewTimer
指向緩衝區的指針,該緩衝區在返回時接收計時器佇列計時器的句柄。當此句柄已過期且不再需要時,通過調用DeleteTimerQueueTimer釋放它。
TimerQueue
計時器佇列的句柄。此句柄由CreateTimerQueue函式返回。
如果此參數為空,則計時器與默認計時器佇列關聯。
Callback
指向應用程式定義的WAITORTIMERCALLBACK類型函式的指針,在計時器過期時將執行該函式。有關詳細信息,請參見WaitOrTimerCallback。
DueTime
相對於第一次發出計時器信號之前必須經過的當前時間的時間量(毫秒)。
Period
計時器的周期,以毫秒為單位。如果此參數為零,計時器將發出一次信號。如果此參數大於零,則計時器是周期性的。周期計時器在周期結束時自動重新激活,直到計時器被取消。
Flags
此參數可以是WinNT.h中的以下一個或多個值。
解釋
WT_EXECUTEDEFAULT
0x00000000
默認情況下,回調函式排隊到非I/O工作執行緒。
WT_EXECUTEINTIMERTHREAD
0x00000020
回調函式由計時器執行緒本身調用。此標誌應僅用於短任務,否則可能會影響其他計時器操作。
回調函式作為APC排隊。它不應該執行可報警的等待操作。
WT_EXECUTEINIOTHREAD
0x00000001
不使用此標誌。
Windows Server 2003和Windows XP:回調函式排隊到I/O工作執行緒。如果函式應在處於可警報狀態的執行緒中執行,則應使用此標誌。
從Windows Vista和Windows Server 2008開始已刪除I/O工作執行緒。
WT_EXECUTEINPERSISTENTTHREAD
0x00000080
回調函式排隊到一個永不終止的執行緒。它不能保證每次都使用相同的執行緒。此標誌應僅用於短任務,否則可能會影響其他計時器操作。
如果執行緒調用使用APCs的函式,則必須設定此標誌。有關詳細信息,請參見異步過程調用。
請注意,當前沒有工作執行緒是真正持久的,儘管如果有任何掛起的I/O請求,也不會終止任何工作執行緒。
WT_EXECUTELONGFUNCTION
0x00000010
回調函式可以執行長時間等待。此標誌幫助系統決定是否應創建新執行緒。
WT_EXECUTEONLYONCE
0x00000008
計時器將僅設定為信號狀態一次。如果設定了此標誌,則Period參數必須為零。
WT_TRANSFER_IMPERSONATION
0x00000100
回調函式將使用當前訪問令牌,無論它是進程令牌還是模擬令牌。如果未指定此標誌,則回調函式僅使用進程標記執行。
Windows XP:此標誌在Windows XP SP2和Windows Server 2003之前不受支持。

返回值

如果函式成功,則返回值為非零。
如果函式失敗,則返回值為零。要獲取擴展錯誤信息,請調用GetLastError

熱門詞條

聯絡我們