Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1434 connectés 

  FORUM HardWare.fr
  Programmation

  [Visual C++] Pause et reveil

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual C++] Pause et reveil

n°102958
mystereetb​ouledegomm​e
Posté le 20-02-2002 à 21:54:03  profilanswer
 

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

mood
Publicité
Posté le 20-02-2002 à 21:54:03  profilanswer
 

n°102972
LetoII
Le dormeur doit se réveiller
Posté le 20-02-2002 à 22:46:45  profilanswer
 

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

n°103210
mystereetb​ouledegomm​e
Posté le 21-02-2002 à 15:25:34  profilanswer
 

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.

n°103224
H4dd3R
Q2
Posté le 21-02-2002 à 15:44:27  profilanswer
 

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
n°103228
mystereetb​ouledegomm​e
Posté le 21-02-2002 à 15:49:27  profilanswer
 

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?

n°103230
LetoII
Le dormeur doit se réveiller
Posté le 21-02-2002 à 15:51:10  profilanswer
 

Ouai je fairai comme ça aussi

n°103240
H4dd3R
Q2
Posté le 21-02-2002 à 16:08:46  profilanswer
 

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.

n°103242
LetoII
Le dormeur doit se réveiller
Posté le 21-02-2002 à 16:11:52  profilanswer
 

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

n°103244
mystereetb​ouledegomm​e
Posté le 21-02-2002 à 16:16:58  profilanswer
 

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

n°103245
LetoII
Le dormeur doit se réveiller
Posté le 21-02-2002 à 16:21:26  profilanswer
 

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)

mood
Publicité
Posté le 21-02-2002 à 16:21:26  profilanswer
 

n°103246
cycojesus
Mèo Lười
Posté le 21-02-2002 à 16:21:47  profilanswer
 

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/
n°103298
mystereetb​ouledegomm​e
Posté le 21-02-2002 à 18:11:45  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Visual C++] Pause et reveil

 

Sujets relatifs
pb de linkage en C++ sous visual ki marche sous mandrake HELP !!!Recherche bon bouquin sur Visual C++ 6.0
[C++] sous visual c++ comment utiliser clrscr sans conio ?compilateur assembleur dans visual C++ ?
[Visual C++ 6.0] Programation graphique ...comment appeler un .dll en visual c++
comment utiliser la touche entree du clavier pour un chat en visual C+[visual c++]comment afficher une image au format jpg
Confrontation (Visual) C/C++ et Delphi (5/6)[Visual C++] / problème de linkage...
Plus de sujets relatifs à : [Visual C++] Pause et reveil


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR