... - C++ - Programmation
Marsh Posté le 22-02-2007 à 20:04:23
tu fait un thread avec un test toutes les secondes sur une variable qui contient le temps de la dernière action.
Dans ton application, a chaque action utilisateur tu update cette variable.
Maintenant cette solution est vraiment "bourrine" il y a peut etre d'autres possibilitées
Marsh Posté le 22-02-2007 à 20:07:19
...
Marsh Posté le 22-02-2007 à 20:17:57
...
Marsh Posté le 23-02-2007 à 11:48:58
Koyomi a écrit : tu fait un thread avec un test toutes les secondes sur une variable qui contient le temps de la dernière action. |
Moi je dirais l'inverse:
Tu fais un thread pour faire tes actions et c'est dans le programme principale qui controle le thread en utilisant un timer et engerant et transmettant les E/S clavier au thread.
Sinon quel est l'environnement exact (windows/linux, mode concole/GUI)?
Marsh Posté le 23-02-2007 à 12:41:27
...
Marsh Posté le 23-02-2007 à 15:01:08
Je dois dire qu'en C++ je sais pas, mais en C y avait kbhit() qui pourrait faire l'affaire mais je ne suis pas sur que ce soit standard/portable.
Marsh Posté le 25-02-2007 à 20:19:25
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 :
|
Et quand il ne se passe rien c'est le handler de SIGALRM qui est appelé. Dedans il faut faire un exit.
Marsh Posté le 22-02-2007 à 19:44:53
...
Message édité par allez-paris le 14-03-2008 à 16:40:47