C/Visual C - Como puedo realizar un contador de tiempo?

 
Vista:

Como puedo realizar un contador de tiempo?

Publicado por Juan Antonio Gonzalez (1 intervención) el 13/02/2007 18:01:45
Hola,

Mi duda es como puedo realizar un contador de segundos para que cuando llegue a 0 el programa deje de ejecutarse.

Mi idea es ir decrementando X segundos mientras estoy realizando una operacion en el programa y que cuando los segundos lleguen a 0 el programa deje de funcionar.

¿Como puedo hacerlo?

Si alguien puede ayudarme se lo agradeceria muchisimo.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como puedo realizar un contador de tiempo?

Publicado por a (1 intervención) el 13/02/2007 22:12:37
aerqq
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo realizar un contador de tiempo?

Publicado por Nelek (816 intervenciones) el 14/02/2007 09:32:37
Hola,

Como no has especificado el lenguaje, te lo comento para Visual C++ (que es lo que yo uso).

La cosa esta en la clase CWnd tiene un par de metodos:

//Para crear un Timer
UINT CWnd::SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );

y

//Para destruir un Timer
BOOL CWnd::KillTimer( int nIDEvent );

Cuando el timer creado por la funcion de arriba cumple el intervalo establecido (ya sea 1 o varios segundos/minutos...) lanza el mensaje WM_TIMER, que puede ser detectado y disparar el evento:

afx_msg void OnTimer( UINT nIDEvent );

donde dentro de la funcion asociada podrias hacer lo que desees:

void CWnd::OnTimer (UINT nIDEvent)
{
// Aqui es donde pondrias el codigo para detener el programa
}

La pausa ya la programas tu como quieras, o con un bucle que no haga nada hasta que ocurra algo (no recomendado), o con un System Pause de la API, pero ahi no tengo muchas nociones, asi que tendras que buscarlo tu mismo o esperar que otro complemente mi respuesta.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar