Attendre changement de valeur d'un booléen [Résolu]

Signaler
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour,

Après recherche sur le net et sur le forum, je n'ai pas trouvé mon bonheur alors que je suis sûr que la question a déjà du être posée. Je m'en remets donc à vous.

Actuellement, lorsque je dois faire attendre un traitement jusqu'à un certains temps, j'utilisais une boucle while(booléen) { sleep(100); }. C'est pas très joli mais cela marche très bien.
Je me dis donc que je veux faire plus propre (ayant déjà développement en C# .net, je sais qu'il existait une méthode qui permettait d'attendre le changement d'état d'un booléen).
Je me demandes donc s'il existe la même chose en C++ (pas C++.net ^^).

J'ai entendu parlé de WaitForSingleObject() mais cela m'a l'air un peu compliqué pour la chose que je veux faire : attendre le changement d'état d'un booléen, puis poursuivre le programme.

Merci d'avance et bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

3 réponses

Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
Comme dit Joky, Thread pour effectuer ton calcul.

Tu as une variable partagée entre tes 2 processus et tu attends un évenement sur cette variable un peu particulière.

HANDLE hEvent;

processus père:
hEvent=CreateEvent(NULL, TRUE, FALSE, NULL);
CreateThread(...);
WaitForSingleObject(hEvent, INFINITE);
ResetEvent(hEvent);
CloseHandle(hEvent);
//--> Une fois ici normalement le traitement dans le thread est fini.

processus fils:
//Déroulement du traitement puis indication au père que le calcul est fini
SetEvent(hEvent);
Vive le C
Savon
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ben j'vois pas d'autre possibilité que l'utilisation d'un thread...

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
21
Je prends note, merci à vous.

Bonne journée

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------