Quand je faisais ça sous Linux (en C) j'utilisais des alarm(0) pour réinitialiser le timer et des alarm(3000) (ou alarm(3), je sais plus) pour le faire attendre 3 secondes.
Avec il fallait programmer un handler et déclarer ce handler pour le signal SIGALRM. Le handler était appelé quand le temps était écoulé.
Edit :
En fait je faisais ça dans une boucle infinie dans un programme à base de XLib.
Code :
- Déclarer handler de SIGALRM
- alarm(3)
- while (true)
- {
- Scruter les entrées -> entrée
- if (Valide(entrée))
- {
- alarm(0)
- doAction()
- alarm(3)
- }
- }
|
Et quand il ne se passe rien c'est le handler de SIGALRM qui est appelé. Dedans il faut faire un exit.
Message édité par Dost67 le 25-02-2007 à 20:23:13