1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
VOID APIENTRY DLMSi_TimerITO(PVOID lpArg, DWORD dwTL, DWORD dwTH)
{
/* Corps du thread */
}
DWORD WINAPI DLMSi_ITOThread(LPVOID pParam) // thread timer
{
LARGE_INTEGER li;
LONG lPeriod;
DWORD wMsg;
lPeriod = 60000;
li.QuadPart = -(LONGLONG)lPeriod * 10000;
DLMS_mEventRecv = CreateEvent(NULL,TRUE,FALSE,NULL);
DLMS_mTimerITO = CreateWaitableTimer(NULL,TRUE,NULL);
SetWaitableTimer(DLMS_mTimerITO,&li,lPeriod,DLMSi_TimerITO,NULL,FALSE);
for(;;)
{
wMsg = WaitForSingleObject(DLMS_mEventRecv,INFINITE);
if(wMsg == WAIT_OBJECT_0)
{
//Do Something puis restart timer
/ * Restart Timer*/
li.QuadPart = -(LONGLONG)lPeriod * 10000;
SetWaitableTimer(DLMS_mTimer,&li,lPeriod,DLMSi_TimerITO,NULL,FALSE);
}
SleepEx(1,TRUE);
}
} |
Partager