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

billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 8 déc. 2006 à 10:45 - Dernière réponse : billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention
- 8 déc. 2006 à 13:24
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
---------------------
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 8 déc. 2006 à 12:42
3
Merci
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

Merci julienbj 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de julienbj
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 8 déc. 2006 à 12:09
0
Merci
Ben j'vois pas d'autre possibilité que l'utilisation d'un thread...

ULARGE_INTEGERJokyQi=QI("Joky"
Commenter la réponse de cs_Joky
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 8 déc. 2006 à 13:24
0
Merci
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
---------------------
Commenter la réponse de billou_13

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.