C/Visual C - Timers en C

 
Vista:

Timers en C

Publicado por Morgul (11 intervenciones) el 09/06/2006 12:02:37
Buenas, a ver quiero programar un Timer en C con el Visual estudio,pero en principio no tengo pensado utilizar ninguna ventana,utilizo la funcion setTimer:
SetTimer(NULL, NULL, 100, funciontiempo);
Q funcion podria utilizar para dejar al ordenado esperando al timer,e probado con un
while(1),sleep,y getchar pero por ninguna de esa va,q podria utilizar???
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:Timers en C

Publicado por Nelek (816 intervenciones) el 09/06/2006 14:47:06
Dentro del VC++, los Timers, tienen dos funciones.

UINT CWnd::SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );

y

BOOL CWnd::KillTimer( int nIDEvent );

Con ello tienes el que te lo crea y el que lo destruye.

Si quieres que el ordenador se quede sin usar el timer usa el kill y cuando lo vuelvas a necesitar crealo de nuevo. Hacer una pausa, como creo que preguntas, es bastante complicado (o al menos así lo veo yo, a ver que dice fernando). El problema está en que para hacer eso te tendrias que derivar tu propio timer y añadirle un parametro que te guardara por donde va la cuenta del timer y otro parametro que te indicara si esta en marcha o en pausa, para que así se interrumpiera en cuanto sucediera algo y se volviera a conectar con otro evento sin haber perdido la cuenta de por donde va. Pero, ufff.... Si lo logras... postea ;)

Era algo así lo que preguntabas? Si no... replantea la pregunta otra vez
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:Timers en C

Publicado por fernando.gomez (1603 intervenciones) el 09/06/2006 20:31:32
¿Cuál es el problema de ::SetTimer? Debería estar funcionando a la perfección, ¿no? O bien, no entendí tu pregunta... En tu ejemplo, una vez que se llama a SetTimer, funciontiempo es llamada cada 100 milisegundos... No capizco a qué te refieres con eso de "Q funcion podria utilizar para dejar al ordenado esperando al timer"...

Saludos.

P.D. CWnd no se podría emplear porque se requiere que el timer no esté asociado a ventana alguna.
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:Timers en C

Publicado por morgul (11 intervenciones) el 10/06/2006 12:15:44
Creo q no me e explicado bien,lo q pasa es q quiero crear un timer q ejecute cada 100ms la funciontiempo,por lo tanto en el main pongo el settimer,que funcion pondrias justo despues,para esperar al timer?

main(){
SetTimer(NULL, NULL, 100, funciontiempo);
//Que funcion pondrias aqui
}
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:Timers en C

Publicado por Nelek (816 intervenciones) el 12/06/2006 10:17:26
Mmmm, que yo sepa no tienes que poner nada, precisamente para eso estas usando el timer. Para que el ordenador cree una cuenta y se ejecute cada X tiempo lo que tu quieres que se ejecute. Entre una ejecución y la siguiente... si no quieres que haya nada mas, no hace falta poner nada. Si quieres jerarquizar las tareas de acuerdo con el timer, y que en los tiempos libres haga otras cosas, sigue poniendo codigo, pero si no... Ya esta.
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