bigzooloo
Messages postés36Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention 6 octobre 2009
-
1 déc. 2005 à 18:44
brownfire
Messages postés25Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention 3 mai 2006
-
20 déc. 2005 à 20:32
Bonjour,
Voici mon problème : je souhaite avoir un Timer PRECIS de 40 ms en mode console.
- J'ai déjà essayé la fonction Sleep(40) mais elle attend ENVIRON 40 ms (surtout que j'utilise plusieurs threads).
- Egalement la fonction WaitForSingleObject(event,40), mais c'est le même problème.
- Je ne peux pas utiliser SetTimer() puisque je n'ais pas de Handle de fenêtre, ni de fonction pour récupérer le WM_TIMER. (a moins qu'il y ai un équivalent ?)
- Il reste la solution d'effectuer une boucle et de tester à chaque itération de nombre de ticks d'horloge CPU. Mais c'est une attente active et je ne veux pas.
Je suis à cours d'idées... Quelqu'un aurait-il quelque chose à proposer ?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 1 déc. 2005 à 20:11
Salut,
Pour utiliser SetTimer() tu n'a pas obligatoirement besoin d'une
fenetre, tu peux passer un pointeur sur une callback en dernier param,
mais il faut quand meme que le thread qui crée le timer ai une boucle
de message (qui utilise GetMessage() et surtout DispatchMessage()).
Sinon il existe d'autres types de timer, comme ceux créés avec
CreateWaitableTimer(), ou ceux créés avec CreateTimerQueueTimer().
Dans tout les cas pour augmenter la precision du timer il faudra peut etre augmenter la priorité du thread courant ?
bigzooloo
Messages postés36Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention 6 octobre 2009 2 déc. 2005 à 14:32
Salut,
Merci pour cette réponse parfaite : pas de chose "évidente", mais des remarques pertinantes.
En effet, après recherches, il semble que les Waitable et Queue timer soit plus précis que SetTimer.