J'ai une application simple quand j'ai besoin d'arrêter un thread backround en utilisant la fonction Stop() avant la fermeture de l'application. Le problème est que ma fonction principale() a plusieurs points de sortie (déclarations de retour)AppDomain.CurrentDomain.ProcessExit et nettoyage
static void Main(string[] args)
{
/// some code
return;
// some code
return;
//// etc
}
J'essayé d'utiliser AppDomain.CurrentDomain.ProcessExit comme un lieu signle pour le nettoyage, mais il est jamais appelé (au moins pendant qu'il est un fil de fond). Existe-t-il un moyen de mettre en œuvre une bonne façon de mettre en œuvre cela?
Pourquoi ne pas vous factoriser la fonction principale d'avoir un seul point de sortie? – Restuta
Demandez-vous comment vous pouvez optimiser pour avoir un seul point de sortie, ou voulez-vous pouvoir tuer votre processus et tous ses threads d'arrière-plan à un moment donné? – Abel
Il n'est jamais appelé parce que votre thread est toujours en cours d'exécution, ce qui maintient le processus en vie. Cela a été couvert dans votre question précédente. –