使用SetWaitableTimer定时器前先了解一下几个函数:
HANDLE CreateWaitableTimer(
LPSECURITY_ATTRIBUTES lpTimerAttributes, //安全描述符,可以为NULL
BOOL bManualReset, //是否为手动定时器,如果是手动的,需要调用SetWaitableTimer才能将定
时器变成信号的,如果是自动的,则调用WaitForsingleObject即可实现定时器信号的重置
LPCTSTR lpTimerName //定时器名称,这对于进程间的定时器来说是有用的。
);
BOOL bManualReset:用于指明人工重置的定时器或自动重置的定时器。当发出人工重置的定时器信号
通知时,等待该定时器的所有线程均变为可调度线程。当发出自动重置的定时器信号通知时,只有一
个等待的线程变为可调度线程。
BOOL SetWaitableTimer(
HANDLE hTimer, // 定时器对象句柄
const LARGE_INTEGER *pDueTime, // 设定定时器从何时开始有信号
LONG lPeriod, // 定时器周期
PTIMERAPCROUTINE pfnCompletionRoutine, // 回调函数
LPVOID lpArgToCompletionRoutine, // 传入回调函数参数
BOOL fResume
);
HANDLE hTimer:定时器对象句柄
const LARGE_INTEGER *pDueTime:设定定时器从何时开始有信号,可