Timer précis mode console [Résolu]

bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention - 1 déc. 2005 à 18:44 - Dernière réponse : brownfire 25 Messages postés jeudi 14 juillet 2005Date d'inscription 3 mai 2006 Dernière intervention
- 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 ?

Merci.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
cs_aardman 1905 Messages postés mercredi 22 janvier 2003Date d'inscription 17 septembre 2012 Dernière intervention - 1 déc. 2005 à 20:11
3
Merci
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 ?



[createtimerqueuetimer.htm ]

Merci cs_aardman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_aardman
bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention - 2 déc. 2005 à 14:32
0
Merci
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.

Pour les comparer, je suis tombé sur cet article : (en anglais)
http://www.codeproject.com/system/timers_intro.asp

Maintenant, je n'ai plus qu'à vérifier leur précision respective .
Commenter la réponse de bigzooloo
brownfire 25 Messages postés jeudi 14 juillet 2005Date d'inscription 3 mai 2006 Dernière intervention - 20 déc. 2005 à 20:32
0
Merci
L'api prevoit les fonction QueryPerformanceFrequency et QuerryPerformanceCounter
Commenter la réponse de brownfire

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.