Bonjour, j'aimerais savoir s'il existe une fonction qui permet d'attendre la fin d'un thread ?
Je créé le thread avec ceci :
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
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);
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 :
et un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 LPDWORD ret; GetExitCodeThread(hProcessThread,ret);
Mais parfois j'ai une exception sur le while ((*ret)!=1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while((*ret)!=1) { GetExitCodeThread(hProcessThread,ret); }
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![]()
Partager