2010-01-12 11 views

Respuesta

7

Esto no se puede hacer en la norma C, debe usar alguna API específica de la plataforma.

Una opción popular es la función POSIX 'alarm().

Esta es una solución aycrónica "pura". Por supuesto, es posible medir y manejar el tiempo de otras maneras, pero aún dependen de la plataforma. Puede usar sleep() (de nuevo, POSIX) para simplemente bloquear. Si combina eso con sus declaraciones deseadas en un bucle, eso debería funcionar también.

3

Deberá crear un hilo o proceso que ejecute un ciclo que contenga una solicitud de espera.

+0

Un hilo es definitivamente la manera de hacer esto: las restricciones sobre lo que se puede hacer con seguridad en un manejador de señal (como el que levanta 'alarm()') son tan grandes que no parece valer la pena el esfuerzo para configurar un hilo. – Flexo

1

Si su aplicación se ejecuta en Windows, en su lugar, puede usar el SetTimer function.

0

De acuerdo con la recomendación de desconexión para la alarma(), pero no olvide configurar otra alarma() una vez que haya terminado con el bloque de procesamiento periódico.

Cuestiones relacionadas