基本介紹
- 中文名:創建定時器
- 外文名: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。