6Fermer8
ZerosquareLe 11/05/2019 à 20:23
Tuer le thread est une solution crade, et ça ne garantit pas que les ressources seront libérées correctement.

La variable partagée vérifiée régulièrement est une solution, mais pour les raisons indiquées précédemment, il vaut mieux utiliser un mécanisme de synchronisation explicite, par exemple un événement.

Dans le cas où il y a besoin d'une communication plus évoluée dans le sens thread UI -> thread de calcul, on peut aussi créer une file de messages pour le thread de calcul, qui fonctionne sur le même principe que celle du thread d'UI :
PostThreadMessageA function (winuser.h)docs.microsoft.comPosts a message to the message queue of the specified thread. It returns without waiting for the thread to process the message.

(attention à bien lire la partie "Remarques", il y a une race condition potentielle sur la création de la file)