Arreter un thread

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 2 févr. 2010 à 18:27
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 2 févr. 2010 à 22:28
Bonjour,

Je me demande quelle est la meilleure façon de stopper un thread:
en utilisant terminatethread ou en faisant un waitforsingleobject d'un event?
ou autre?
et aussi pourquoi?


 

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 févr. 2010 à 20:49
terminatethread JAMAIS, seulement admissible pour stoper tout un processus à la sauvage.
Un event ou un flag de stop à lire régulierement ou tout autre moyen de synchro qui fera sortir proprement le thread sera OK.

ciao...
BruNews, MVP VC++
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
2 févr. 2010 à 22:28
Salut,
Quand un thread atteint un return il se termine de lui même. WaitForSingleObject() permet d'attendre qu'un thread soit terminé. En plus du flag ou de l'event, on peut envoyer un message personnalisé au thread avec PostThreadMessage(). Ce message sera récupéré avec une boucle de messages propre au thread. Ensuite, il sera traité convenablement dans la fonction du thread pour le fermer proprement.
3
Rejoignez-nous