Comment puis-je arrêter un thread quand mon winform application se ferme
J'ai un singleton qui a un thread en cours d'exécution pour obtenir des documents à partir d'un serveur.
Mais quand j'arrête mon application winform le fil continue de fonctionner. J'ai essayé de créer un destructeur dans mon singleton pour interrompre le thread si elle fonctionne, mais il n'a pas d'effet sur le fil - je sais que le destructeur est évoquée.
Je suis à la recherche de suggestions sur la façon dont je devrais arrêter un thread lorsque mon application se ferme.
grâce
C#, .net2
double possible de Comment arrêter BackgroundWorker sur le Formulaire de Clôture de l'événement?
J'ai regardé votre lien sugestion...il n'a pas faire une chose pour moi
J'ai regardé votre lien sugestion...il n'a pas faire une chose pour moi
OriginalL'auteur fishhead | 2010-08-22
Vous devez vous connecter pour publier un commentaire.
La meilleure option, si possible dans votre demande, c'est de la coopérative d'annulation.
Un thread s'arrête automatiquement quand il n'a plus de code à exécuter. Ainsi, lorsque l'utilisateur ferme de votre application, vous avez défini un drapeau indiquant que votre fil doit s'arrêter. Le fil doit vérifier de temps en temps si le drapeau est réglé, et si oui, arrêtez d'obtenir des documents à partir du serveur et de retour.
Sinon, vous pouvez rouler votre propre solution, par exemple
OriginalL'auteur dtb
Un thread peut être:
Lorsque vous créez un thread, il est par défaut un thread de premier plan.
Vous pouvez la modifier comme ceci:
Je l'ai juste testé, thread d'arrière-plan ne prend Pas fin lorsqu'un formulaire est fermé dans un multi-formulaire de demande.
OriginalL'auteur didier