[Visual C++] Pause et reveil

Pause et reveil [Visual C++] - Programmation

Marsh Posté le 20-02-2002 à 21:54:03    

Voila je souhaiterais que mon processus soit en pause pdt un tres court instant mais qu'il puisse etre reveille soit apres ce cours instant soit parce que l'utilisateur a appuyer sur une touche...  
Merci

Reply

Marsh Posté le 20-02-2002 à 21:54:03   

Reply

Marsh Posté le 20-02-2002 à 22:46:45    

tout dépend de ce que tu appel un très cour instant....
 
Moi je fairais comme ça: je crérai 2 thread; un qui crée un mutex, et qui écoute les message en provenance du clavier, l'autre qui attend pendant un certain temps qu'il puisse prendre possession du mutex. Si le prmier thread reçoit un événement clavier il relache le mutex.
 
Fonctions de l'API: CreateMutex,OpenMutex,WaitForSingleObject,ReleaseMutex,CreateThread

Reply

Marsh Posté le 21-02-2002 à 15:25:34    

En fait j'utilise glut et opengl pour afficher des formes. je souhaiterais que ces formes avancent vers le 'fond' de l'ecran. Mais je veux le faire avec une certaine lenteur. Donc le truc devrait avancer de une unite toutes les secondes par exemple mais la forme doit tjs pouvoir etre deplace sur les axes x et y pdt le temps ou le processus attend(cad entre le moment ou la forme vient de bouger et son prochain mouvement).
Quelqu un a une idee merci.

Reply

Marsh Posté le 21-02-2002 à 15:44:27    

Je crois que ton approche est pas la bonne..
 
Tu prends un thread qui s´occupe du déplacement lent.. Il cacule la profondeur et qd il estime un redraw nécessaire il envoie un message au thread principal qui doit s´en charger..
 
Le thread principal il se contente de faire du process message.. Messages provenant du clavier ou de l´éloignement z, et qui déclanchent un redraw.. :)
 
C une solution si ton app n´a pas le droit de prendre tt le temps cpu.. Si elle a le droit (style démo ;) ), c plus simple!!

 

[jfdsdjhfuetppo]--Message édité par H4dd3R--[/jfdsdjhfuetppo]


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
Reply

Marsh Posté le 21-02-2002 à 15:49:27    

Moui mais j'avoue que les messages entre thread je sais pas comment faire mais je peux chercher. Deplacement lent = sleep ? Ou tu vois une autre maniere?

Reply

Marsh Posté le 21-02-2002 à 15:51:10    

Ouai je fairai comme ça aussi

Reply

Marsh Posté le 21-02-2002 à 16:08:46    

Oui.. Ton thread de coordonnées z peut très bien être un timer (qui n´est rien d´autre qu´un thread avec des Sleep() mais tu dois pas t´en occuper)..
 
PostMessage() sinon pour signaler à ton thread principal.

Reply

Marsh Posté le 21-02-2002 à 16:11:52    

Tu prend le temps system et tu fais une boucle qui attend que tant de sec se soient écoulées

Reply

Marsh Posté le 21-02-2002 à 16:16:58    

Recuperer le temps systeme me parait interressant(comment qu'on fait). Tu aurais pas un guide sur les threads car ca me parait different des fork linux je vois pas tres bien comment preciser ou preciser quel code doit etre execute ds le second thread.
Encore merci et je hais l'API windows

Reply

Marsh Posté le 21-02-2002 à 16:21:26    

t'as une fonction du style getSystemTime ou qqc dans ce style (me souvient pas bien) par contre c un peux chaud ça renvoie un entier sur 64 bits (ils comptes le nombre d'intervals de 100 nanosec depuis le premier janviers 1601 je crois :) )
Si non pour les thred tu dois passer l'adresse d'une fonction qui répond à un certain proto (regarde dans la doc)

Reply

Marsh Posté le 21-02-2002 à 16:21:26   

Reply

Marsh Posté le 21-02-2002 à 16:21:47    

avec GLUT tu peux récupérer le temps passé depuis le lancement (en ms) (GLUT_ELAPSED_TIME ou un truc dans le genre). après, dans ton idle(), à chaque fois que T ms sont passées, tu bouge ton objet.
 
J'utilise un truc dans le genre pour calc les fps (toute les sec on regarde combien d'images on à afficher => fps.


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
Reply

Marsh Posté le 21-02-2002 à 18:11:45    

Le probleme c'est que pour le clavier j'utilise la fonction glutSpecialFunc(processSpecialKeys); et processSpecialKeys doit etre du type vois si je ne me trompe alors je ne sais pas comment utiliser les thread car d'apres ce post
http://forum.hardware.fr/forum2.ph [...] ic=&trash=
 
la fonction doit etre de type UINT ... Qulequ'un a une idee? Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed