Je ne suis pas sûr de la raison pour laquelle cela se produit et je n'ai jamais explicitement interrompu les threads, donc c'est un peu une surprise. Mais je consigne les exceptions et je vois :
System.Threading.ThreadAbortException - Le fil a été interrompu.
Cela semble se produire lors d'un appel à System.Threading.WaitHandle.WaitOne
. Je ne sais pas jusqu'où va cette exception. Je ne pense pas que mes threads se terminent jamais, parce que j'attrape le journal et avale l'erreur.
Pourquoi est-ce que j'obtiens ces erreurs ? Peut-être que c'est lorsque je ferme de force mon serveur ou que je lui demande de redémarrer ? Si ce n'est pas le cas, qu'est-ce qui peut les provoquer ?
0 votes
Pouvez-vous montrer le code que vous avez dans Application_Start ?
0 votes
@rick : Je ne sais pas ce que vous espérez trouver mais voici un extrait.
var obj1=new MyServiceObject(); srv1 = new Thread(obj1.Queue); ... srv1.Start()
. Notez que obj1 n'est pas à l'intérieur d'un bloc using afin qu'il ne soit pas éliminé prématurément. C'est juste un simple thread que je crée au démarrage.0 votes
Je pense que votre variable srv1 perd de sa portée et tue le fil. Vous devrez attendre qu'il se termine, ou changer la portée pour une portée de niveau supérieur. (Je réalise que cette réponse a 10 ans de retard ; cependant, j'ai pensé que quelqu'un d'autre pourrait voir cela). J'ai eu un problème similaire avec la journalisation dans une application asp.net - j'essayais de me connecter dans un thread séparé et le thread mourait constamment. Après avoir modifié la portée de la variable à laquelle il était affecté, le ramasseur d'ordures l'a laissé tranquille.