WinMain писал(а):Есть ещё в системе так называемый Waitable Timer. Соответственно, функции для него CreateWaitableTimer() и SetWaitableTimer().
По-моему, это как раз то, что тебе нужно.
Правильно ли я понимаю, что последовательность действий примерно такая:
hTimer = CreateWaitableTimer (NULL, TRUE, NULL); // или 3-й п-ер какое-нибудь имя
Далее, в момент начала паузы:
SetWaitableTimer (hTimer, <интервал_паузы>, 0,
MyCompletionRoutine, // completion routine
&MyArgToCompletionRoutine, // completion routine parameter
0);
По истечении указанного промежутка вызовется MyCompletionRoutine.
А отменить таймер (если до истечения указанного промежутка выясниться, что он уже не актуален):
CancelWaitableTimer (hTimer);
Далее по необходимости возможны повторные вызовы SetWaitableTimer.
Так?
[quote="WinMain"]Есть ещё в системе так называемый Waitable Timer. Соответственно, функции для него CreateWaitableTimer() и SetWaitableTimer().
По-моему, это как раз то, что тебе нужно.[/quote]
Правильно ли я понимаю, что последовательность действий примерно такая:
hTimer = CreateWaitableTimer (NULL, TRUE, NULL); // или 3-й п-ер какое-нибудь имя
Далее, в момент начала паузы:
SetWaitableTimer (hTimer, <интервал_паузы>, 0,
MyCompletionRoutine, // completion routine
&MyArgToCompletionRoutine, // completion routine parameter
0);
По истечении указанного промежутка вызовется MyCompletionRoutine.
А отменить таймер (если до истечения указанного промежутка выясниться, что он уже не актуален):
CancelWaitableTimer (hTimer);
Далее по необходимости возможны повторные вызовы SetWaitableTimer.
Так?