1. 程式人生 > >可等待計時器與使用者計時器

可等待計時器與使用者計時器

可等待計時器的介面原型如下:
HANDLE CreateWaitableTimer(PSECURITY_ATTRIBUTES psa, BOOL bManualReset,PCTSTR pszNmae);
HANDLE OpenWaitableTimer(DQORD dwDesireAccess,BOOL bInheritHandle,PCTSTR pszName);
BOOL SetWaitableTimer(HANDLE hTimer,const LARGE_INTEGER *pDueTime,LONG lPeriod,PTIMERAPCROUTINE pfnCompletionRoutine,PWORD pvArgToCompletionRoutine,BOOL bResume);

使用者計時器的介面原型如下:
UINT_PTR SetTimer(
HWND hWnd, // 視窗控制代碼
UINT_PTR nIDEvent, // 定時器ID,多個定時器時,可以通過該ID判斷是哪個定時器
UINT uElapse, // 時間間隔,單位為毫秒
TIMERPROC lpTimerFunc // 回撥函式
);

區別:使用者計時器需要使用者在應用程式中使用大量的使用者介面基礎設施,從而小號更多的資源;而可等待計時器屬於核心物件,不僅可以在多執行緒之間共享,而且比較安全。