J'ai besoin dans un programme en cour de création d'un timer asynchrone. je m'explique :
j'ai besoin d'executer des actions a des heures bien précise sauf que je ne veut pas qu'en attendant ces moments, je bloque mon programme.
Donc , comme sous win32 avec les events dans les fenetres de dialogues, j'aimerai savoir si cela existe avec des timers et sous linux car je programme sous linux.
J'ai fouillé un peut partout sur le net sans trouver vraimetn ce que je veux , peut etre parce que ca n'existe pas.
si ton truc doit etre plus précis, tu peux faire :
- calcule le temps en milliseconde à attendre
- avec ton nombre de milliseconde, tu trouves le nombre de secondes entieres à attendre
- tu fais ton sleep du nombre de seconde
- il te reste à patienter pour le nombre de millisecondes restantes.là tu peux faire avec une boucle, tant pis pour le CPU, ça va pas durer des heures (au maximum juste un peu moins d'une seconde)
Peut-être qu'utiliser des thread peuvent aider.
Avec ça tu pourrais lancer un thread pour chaque action que tu veux executer en passant comme param au thread l'heure d'execution de la commande.
- tu lances ton thread
- puis dans ton thread tu fais patienter jusqu'à ce qu'à ce que ça soit l'heure qu'il te faut. (avec une fonction genre sleep, pas une boucle infinie sinon tu vas bouffer le CPU)
- puis un fois que c'est fait tu fais continuer l'execution de ton thread (l'action en gros)
j'avais penser a cela mais je me demandait si la fonction sleep était assez précise.
mais surtout c'est que ce n'est pas tres pratique , mais bon je vais faire avec.
n'est-il pas possible d'essayer avec un signal ? Je ne me rapelle plus le nom, sur le coup, mais yen a pas un qui permet d'entrer dans une fonction au bout d'un temps bien précis ?