Bonjour, j'aimerais savoir s'il existe une fonction qui permet d'attendre la fin d'un thread ?


Je créé le thread avec ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4

HANDLE hProcessThread;
hProcessThread = CreateThread(NULL,0,&CTab_Optim::ThreadLauncher,&var_process,0,NULL);
sachant que ThreadLauncher est une fonction static qui a la base fait un calcul qui prend le proc bien violemment (calcul scientifique), avec les parametres dans var_process une variable globale de l'objet en cours

Si je fais ça, c'est pour garder la main sur le thread courant en affichant une barre de progression à l'écran, pendant que l'autre thread calcul

mais j'aimerais aussi savoir quand il s'arrete

j'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4

LPDWORD ret;
GetExitCodeThread(hProcessThread,ret);
et un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5

while((*ret)!=1)
{
GetExitCodeThread(hProcessThread,ret);
}
Mais parfois j'ai une exception sur le while ((*ret)!=1

mais je ne sais pas pourquoi...

Alors plutot que d'interroger le thread sur sa réponse à l'exit code, je me demandais s'il n'y avait pas une fonction de wait sur un thread donné.. Mais je ne trouve pas dans la msdn


merki