Foros del Web » Programación para mayores de 30 ;) » C/C++ »

temporizador

Estas en el tema de temporizador en el foro de C/C++ en Foros del Web. Hola! Estoy haciendo una práctica y necesito que cada 5s aprox. un proceso ejecute una tarea determinada. Sabeis con que objeto puedo realizarlo. Saludos Daly...
  #1 (permalink)  
Antiguo 07/09/2006, 04:49
 
Fecha de Ingreso: septiembre-2003
Mensajes: 79
Antigüedad: 20 años, 7 meses
Puntos: 0
temporizador

Hola!
Estoy haciendo una práctica y necesito que cada 5s aprox. un proceso ejecute una tarea determinada. Sabeis con que objeto puedo realizarlo.
Saludos
Daly
  #2 (permalink)  
Antiguo 07/09/2006, 09:08
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
podes hacer uso de la funcion sleep(), le pasas coo parametro la cantidad de milisegundos que queres dormir el proceso y listo. En tu caso seria algo asi como

void main() {
tarea(); // llamada a la tarea que queres hacer cada 5 minutos
sleep(300000);
}

espero que te sirva

PD: esta funcion esta en la biblioteca bios.h o dos.h, nmo me acuerdo bien.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 09/09/2006, 05:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 79
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias por contestar, pero con sleep no soluciono el problema!
Sleep permite detener el proceso durante x segundos. Yo lo que necesito es que el programa principal cada x segundos ejecute una instrucción. Mientras tanto esté ejecutando instrucciones del programa principal (val la rebundancia).
Sería algo similar como el TTimer de Delphi
Gracias
Saludos
Daly
  #4 (permalink)  
Antiguo 09/09/2006, 12:55
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
usa un Thread, claro que el como lo crees y uses dependera de la libreria a usar.

Saludos.
  #5 (permalink)  
Antiguo 13/09/2006, 22:03
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Desde el programa que s ejecuta todo el tiempo, largas un thread que se ejecute cada X cantidad de segundos.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #6 (permalink)  
Antiguo 14/09/2006, 06:53
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por TolaWare Ver Mensaje
podes hacer uso de la funcion sleep(), le pasas coo parametro la cantidad de milisegundos que queres dormir el proceso y listo. En tu caso seria algo asi como

void main() {
tarea(); // llamada a la tarea que queres hacer cada 5 minutos
sleep(300000);
}

espero que te sirva

PD: esta funcion esta en la biblioteca bios.h o dos.h, nmo me acuerdo bien.
Sleep no está definida en el estándar ANSI C.

Como tampoco bios.h o dos.h

da_ly, primero dinos donde trabajas.
  #7 (permalink)  
Antiguo 14/09/2006, 06:56
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
La solución sería utilizar un timer del propio sistema operativo. Algo así como:

void f()
{
/* Lo que pongas aquí cada 5s */
}

int main()
{
int timer = create_timer(5000,f);

...

delete_timer(timer);
}
  #8 (permalink)  
Antiguo 14/09/2006, 17:57
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Cita:
Iniciado por MaxExtreme Ver Mensaje
La solución sería utilizar un timer del propio sistema operativo. Algo así como:

void f()
{
/* Lo que pongas aquí cada 5s */
}

int main()
{
int timer = create_timer(5000,f);

...

delete_timer(timer);
}
Las funciones especificas de cada sistema operativos, tampoco estan en el standart ANSI C
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #9 (permalink)  
Antiguo 14/09/2006, 18:21
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por TolaWare Ver Mensaje
Las funciones especificas de cada sistema operativos, tampoco estan en el standart ANSI C
¿He dicho lo contrario?

No te mosquees por favor. La diferencia está en que tú presentaste la opción como solución, y no avisaste de que depende del sistema operativo; y yo lo presente como "función específica del sistema operativo".

Para colmo, ni dos.h ni bios.h existen en Windows (más bien, los compiladores de Microsoft). Y sleep() no se encuentra en la API de windows. La que podría usar es Sleep (de kernel32). Existe en todos los windows; incluyendo windows.h.

Última edición por MaxExtreme; 14/09/2006 a las 18:28
  #10 (permalink)  
Antiguo 14/09/2006, 22:46
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Cita:
Iniciado por MaxExtreme Ver Mensaje
¿He dicho lo contrario?

No te mosquees por favor. La diferencia está en que tú presentaste la opción como solución, y no avisaste de que depende del sistema operativo; y yo lo presente como "función específica del sistema operativo".

Para colmo, ni dos.h ni bios.h existen en Windows (más bien, los compiladores de Microsoft). Y sleep() no se encuentra en la API de windows. La que podría usar es Sleep (de kernel32). Existe en todos los windows; incluyendo windows.h.
Estas bibliotecas y funciones se encuentran en los compiladores borland
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #11 (permalink)  
Antiguo 15/09/2006, 18:13
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por TolaWare Ver Mensaje
Estas bibliotecas y funciones se encuentran en los compiladores borland
En los antiguos compiladores Borland, que no eran para Windows sino MS-DOS, que yo sepa.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.