La terminaison d'un thread en cours d'exécution peut poser des problèmes, en particulier lors de l'utilisation la méthode Thread.Abort(). Au lieu d'interrompre brusquement le fil de discussion, il est recommandé d'adopter une approche plus coopérative.
Concevez votre fil de discussion avec un mécanisme qui lui permet de se suicider avec grâce. Introduisez un indicateur booléen, tel que keepGoing, que vous pouvez définir sur false pour signaler au thread de s'arrêter. Dans le fil de discussion, utilisez une boucle comme celle-ci :
while (keepGoing) { /* Perform work. */ }
Si le fil de discussion est susceptible de se bloquer dans les fonctions Veille ou Attente, faites-le réactif aux interruptions en appelant Thread.Interrupt(). Le thread doit gérer les ThreadInterruptedExceptions de manière appropriée :
try { while (keepGoing) { /* Perform work. */ } } catch (ThreadInterruptedException exception) { /* Clean up and exit gracefully. */ }
Cette approche garantit que le thread peut se terminer proprement, minimisant ainsi les interruptions potentielles ou la perte de données. N'oubliez pas que Thread.Abort() doit être évité en raison de sa nature perturbatrice.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!