123 votes

Le thread a quitté avec le code 0 (0x0) sans exception non gérée.

En déboguant mon application C#, j'ai remarqué un grand nombre d'occurrences de la phrase suivante :

Le thread -- a quitté avec le code 0 (0x0).

L'application continue de fonctionner et aucune exception n'est prise en défaut.

L'application fonctionne sous Windows 7 64bit et est déboguée avec une plateforme x86.

195voto

BlueM Points 2453

C'est juste un message de débogage. Vous pouvez le désactiver en faisant un clic droit dans la fenêtre de sortie et en décochant Thread Exit Messages .

http://msdn.microsoft.com/en-us/library/bs4c1wda.aspx

En plus du programme hors de votre application, le Sortie fenêtre peut afficher les informations sur :

  • Modules que le débogueur a chargés ou déchargés.

  • Les exceptions qui sont lancées.

  • Les processus qui sortent.

  • Les fils qui sortent.

17voto

Kek Points 2046

Une application peut avoir un grand nombre de threads fonctionnant en parallèle. Certains sont exécutés par vous, le codeur, d'autres par les classes du framework (en particulier si vous êtes dans un environnement GUI).

Lorsqu'un thread a terminé sa tâche, il sort et cesse d'exister. Il n'y a rien d'alarmant à cela et vous ne devriez pas vous en soucier.

12voto

alphanoch Points 141

Afin de compléter la réponse acceptée par BlueM, vous pouvez la désactiver ici :

Outils > Options > Débogage > Paramètres généraux de sortie > Messages de sortie de fil : Désactivé

7voto

Yahia Points 49011

Si votre application utilise des threads directement ou indirectement (c'est-à-dire derrière la scène comme dans une bibliothèque tierce), il est tout à fait courant que les threads se terminent après avoir terminé... ce qui est essentiellement ce que vous décrivez... le débogueur affiche ce message... vous pouvez configurer le débogueur pour ne pas afficher ce message si vous ne le voulez pas...

Si ce qui précède ne vous aide pas, veuillez fournir plus de détails, car je ne suis pas sûr de la nature exacte du problème que vous rencontrez...

2voto

tonyb Points 91

L'exécution de requêtes Linq peut générer des threads supplémentaires. Lorsque j'essaie d'exécuter du code qui utilise la collection de requêtes Linq dans la fenêtre immédiate, il refuse souvent de s'exécuter parce qu'il n'y a pas assez de threads disponibles pour le débogueur.

Comme d'autres l'ont dit, il est tout à fait normal que les fils se terminent lorsqu'ils sont terminés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X