2010-01-24 11 views

risposta

9

Chiamare la funzione SetTimer. Ciò consente di specificare una funzione di callback o di fare in modo che Windows pubblichi un messaggio WM_TIMER.

+1

secondo nobugz - questo non funzionerà in applicazioni di console o thread non gui. i thread devono pompare messaggi per generare callback SetTimer. –

+0

SetTimer non è un timer ad alta risoluzione (cioè <20 ms). CreateTimerQueueTimer è migliore ma consuma più risorse. –

4

SetTimer. È necessario un handle di finestra e il timer non verrà consegnato se non si pompano messaggi.

5

Non si può non sapere questo se si scrive codice GUI. Il che rende probabile l'utilizzo di CreateTimerQueueTimer().

+0

questa è l'applicazione console – SomeUser

+2

Sì, CreateTimerQueueTimer è tuo amico. Fai attenzione che la callback viene eseguita su un thread del threadpool, quindi utilizza il blocco appropriato. –

+0

CreateWaitableTimer può essere utilizzato anche nell'applicazione console. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682492(v=vs.85).aspx –

5

un buon esempio per CreateTimerQueueTimer: Here

Un altro è HERE

0

chiamata setTimer() funzione. Supponiamo che ho chiamato funzione

SetTimer(hWnd,POST_CBIT_TIMER,500,NULL); 

Call back è

UINT nIdEvent ;//global member variable 

case WM_TIMER: 

if(nIDEvent == POST_CBIT_TIMER) 
{ 

KillTimer(hParent,POST_CBIT_TIMER); 


} 
break;