J'ai un thread de travail qui est vital pour mon application.
Il est créé avec new Thread(method).Start();
Je ne le rejoins pas, je m'attends juste à ce qu'il fonctionne tant que mon programme s'exécute.
Cependant, il peut arriver qu'une exception soit interceptée sur ce thread; et en conséquence, le thread sera (à côté de la dernière connexion) arrêt. Une récupération n'est pas possible pour cette erreur critique. Depuis le fil est vital pour l'application, il doit également fermer.Comment surveiller un thread de travail vital
Maintenant, ma question est: Comment puis-je surveiller l'état de mon thread?
Souhaitez-vous
- Poll la propriété
IsAlive
? Repousser l'exception interceptée et travailler avecAppDomain.CurrentDomain.UnhandledException
? - mettre en œuvre un
event
qui signalera la fin de mon fil d'arrière-plan? - utiliser un
BackgroundWorker
, qui implémenteRunWorkerCompleted
? (Mais un BackgroundWorker est-il vraiment le bon choix pour les longs threads?) - quelque chose de complètement différent?
EDIT:
En ce moment, je résolu le problème en appelant Application.Exit()
->accident tôt et souvent. C'est une option aussi :)
Mais je besoin d'une référence à un contrôle - uniquement pour ce purpuse:/ – tanascius
Un contrôle est un moyen pratique d'exécuter du code sur le thread de l'interface utilisateur. Pas nécessairement le seul moyen. Habituellement, vous avez besoin de revenir à un moment donné, j'ai tendance à préférer le plus tôt possible. –