2010-01-24 24 views

Respuesta

9

Llame a la función SetTimer. Esto le permite especificar una función de devolución de llamada, o que Windows publique un mensaje WM_TIMER.

+1

según nobugz - esto no va a trabajar en aplicaciones de consola o hilos no GUI. los hilos deben estar bombeando mensajes para generar devoluciones de llamada SetTimer. –

+0

SetTimer no es un temporizador de alta resolución (es decir, <20ms). CreateTimerQueueTimer es mejor pero consume más recursos. –

4

SetTimer. Se necesita un identificador de ventana, y el temporizador no se entregará si no está transfiriendo mensajes.

5

No puede saber esto si escribe el código GUI. Lo que hace que sea probable que quiera usar CreateTimerQueueTimer().

+0

esta es la aplicación de consola – SomeUser

+2

Sí, CreateTimerQueueTimer es tu amigo. Tenga en cuenta que la devolución de llamada se ejecuta en una secuencia de subprocesos así que use el bloqueo adecuado. –

+0

CreateWaitableTimer también se puede usar en la aplicación de consola. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682492(v=vs.85).aspx –

0

llamada de la función setTimer(). Supongamos que yo llamé

SetTimer(hWnd,POST_CBIT_TIMER,500,NULL); 

función de llamada de regreso es

UINT nIdEvent ;//global member variable 

case WM_TIMER: 

if(nIDEvent == POST_CBIT_TIMER) 
{ 

KillTimer(hParent,POST_CBIT_TIMER); 


} 
break;