C# - Arrêter un thread récalcitrant

Fermé
MoYoX Messages postés 127 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 21 mars 2014 - 20 févr. 2013 à 15:16
Bonjour à tous !

J'essaie de faire une application "basique" de communication Client -> Serveur mais je me retrouve confronté à un problème lorsque je tente de quitter mon application Serveur ... il reste coincé !

En effet, j'ai un "messageclient.exe" et un "messageserveur.exe", quand je ferme le serveur, le "messageserveur.exe" reste lamentablement coincé dans le gestionnaire des tâches et je dois le tuer à la main.

J'ai essayé une combine trouvée sur le net, à savoir éxécuter mon Thread dans une while:

this.listen.Start();
            while (_shouldStop)
            {
                //GENERATION DE MON THREAD
..... avec tout le tralala
//FIN DE GENERATION DE MON THREAD

//Début du Thread
                clientThread.Start(client);
            }
            this.listen.Stop();


Donc en gros, on rentre dans la while tant que ma variable "_shouldstop" reste à "True" (chose qu'on définit au dessus dans une
private volatile bool _shouldStop = true;
)

J'ai créé un bouton "Quitter" (pour quitter le serveur ...), et lors de l'appui sur ce bouton j'ai demandé à ce que ma variable "_shouldstop" passe à "False".

Mais ça marche pas !
J'ai toujours mon "Messageserveur.vshost.exe" qui reste bloqué (et du coup je ne peux pas relancer mon débogage etc car ... il est déjà lancé).

Enfin bref, je coince un peu, j'espère que c'est à peu près compréhensible ... et je remercie d'avance celui ou celle qui pourra m'aider !

Damien