2013-02-19 3 views
2

J'ai hérité d'un projet WinForms studio visuel assez grand en C# et VB.NetEst-il possible de piéger les événements de début et de fin de thread?

Alors que je travaille avec lui, je reçois des messages dans la fenêtre de débogage comme ceci:

The thread '<No Name>' (0x1194) has exited with code 0 (0x0). 
The thread '<No Name>' (0x664) has exited with code 0 (0x0). 
The thread '<No Name>' (0x14b0) has exited with code 0 (0x0). 

Dans un effort pour mieux comprendre le logiciel, je suis curieux d'enquêter sur ce que ces fils sont. Existe-t-il des outils que je peux utiliser ou des options de débogage que je peux activer et qui me permettront de rompre lorsque de nouveaux threads seront créés/terminés?

Note: J'ai bloqué des points d'arrêt sur tous les "... = new Thread" et "... .RunWorkerAsync()" code que je peux trouver et ce n'est aucun d'entre eux.

+0

Chaque fois qu'un 'Task.Run' (ou il est utilisé en interne par une méthode qui retourne un' Task') est utilisé, il pourrait également potentiellement créer un thread s'il n'y a pas de discussions en direct dans le ThreadPool. –

Répondre

0

Dans la classe Thread il y a une propriété de nom que vous pouvez définir. Lorsque vous le modifiez, le texte "No Name" dans la sortie sera remplacé par ce que vous avez défini ici. Cela vous permettra de voir plus facilement ce qui se passe.

Thread MyThread = new Thread(...); 
MyThread.Name = "MyName"; //Can only be set once. 
MyThread.Start(....); 
+0

Merci Harry! Malheureusement, je n'ai aucune idée de ce qui est en train de démarrer les discussions, quel est le problème que j'essayais de résoudre. J'espérais que si je pouvais piéger des événements de démarrage et d'arrêt de threads, je pourrais aussi découvrir ce qui les créait. –

Questions connexes