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

  FORUM HardWare.fr
  Programmation

  [C++] Attendre la fin d'un thread pour quitter

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Attendre la fin d'un thread pour quitter

n°59245
antsite
Je me souviens
Posté le 12-09-2001 à 19:13:03  profilanswer
 

Comment dire à mon appli qu'elle attende qu'un thread se termine avant de quitter ?
Voici mon bout de code (MFC) :
 
void CANTChatWin2Dlg::OnClose()  
{
 stop = 1; //dit au thread d'arrêter, mais ça prend du temps, alors on attend :
 while(clok == 0) //clok = 1 à la fin du thread
  Sleep(10);
 
 CDialog::OnClose();
}
 
Mais lorsque que l'on ferme l'appli, ce code bloque tout. (Ctrl Alt Suppr pour arrêter).

mood
Publicité
Posté le 12-09-2001 à 19:13:03  profilanswer
 

n°59279
karlkox
Posté le 12-09-2001 à 22:53:54  profilanswer
 

utilise plutot waitforsingleobject(handle,timestamp) pour syncroniser le tout et arreteter le thread.

n°59465
antsite
Je me souviens
Posté le 13-09-2001 à 21:07:49  profilanswer
 

Ca marche toujours pas :
voici mon code :
 
HANDLE th;
 
Au chargement :
DWORD x;
th = CreateThread(NULL,0,srv,this,0,&x);
 
void CANTChatWin2Dlg::OnClose()  
{
 stops = 1;
 
 WaitForSingleObject(th,INFINITE);
 CDialog::OnClose();
}
 
Le thread :
DWORD WINAPI srv(void* pDialog)
{
 while(stops == 0)
 {
 ...
 }
 return 0;
}
 
Et ça bloque toujours quand je quitte.

n°59472
karlkox
Posté le 13-09-2001 à 21:28:00  profilanswer
 

et avec while (WaitForSingleObject(th,TRUE)==WAIT_IO_COMPLETION); ?

n°59512
H4dd3R
Q2
Posté le 14-09-2001 à 09:15:48  profilanswer
 

Je trouve les classes de synchronisation de win vraiment atroces..
 
Depuis que j´ai défini mes propres classes thread safe en me basant sur le principe qu´un accès mémoire fera jamais moins de 8bits (en gros synchro par un bool) tt marche à merveille.. :)
Alors effectivement si mon principe d´accès par 8 bits mini est pris en défaut je suis mal.. Mais je pense pas que ça arrivera de sitôt!! ;)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°59595
antsite
Je me souviens
Posté le 14-09-2001 à 18:50:20  profilanswer
 

J'ai fais ça mais ça marche toujours pas, là ça se bloque pas mais le thread n'est pas achevé proprement et j'ai un message d'erreur après la fermeture de l'appli :
void CANTChatWin2Dlg::OnClose()  
{
 stops = 1;
 while(WaitForSingleObject(th,TRUE)==WAIT_IO_COMPLETION);
 
 CDialog::OnClose();
}
Ca me prend la tête ce truc  :crazy:


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

  [C++] Attendre la fin d'un thread pour quitter

 

Sujets relatifs
Thread sous delphi Arg!!![Visual C++] Thread dans MFC
thread sous visualC++[VISUAL C++] Fermeture prématurée d'un thread
[Windows] Info sur thread ?[Javascript] On unload= je cherche une fonction pour le faire attendre
[HELP] pb de controle de la rapidité d'un(e) thread.[C] quitter programme avec control D
[JAVA] besoin d'un expert en Thread !!!Définition : thread / Process
Plus de sujets relatifs à : [C++] Attendre la fin d'un thread pour quitter


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