Je commence presque 5 threads dans un programme en C# .NET. Mais parfois certains de ces threads s'arrêtent ou deviennent inexplicables même avant la fin de l'exécution de la fonction qui leur est assignée.Comment empêcher les threads de mourir ou simplement de quitter C# .NET?
Cela arrive de manière aléatoire. Si j'essaie de déboguer le code en mettant des points d'arrêt - Cela fonctionne bien.
Et parfois tous les threads exécutent parfaitement les fonctions assignées. Ils ne partagent aucune ressource entre eux.
Thread[] td = new Thread[5];
for (count = 4; count >= 0; --count)
{
ds[count] = dba.getData(ru[count]);
td[count] = new Thread(delegate() { runRule[count].performTask(ru[count], ds[count], count); });
td[count].Name = "Thread " + count.ToString();
td[count].Start();
Thread.Sleep(50);
}
Si je supprime la dernière ligne « Thread.Sleep (50) » seul le premier fil fixaient fonctionne et reste d'entre eux meurent juste. Est-ce que quelqu'un peut expliquer pourquoi les fils meurent?
ThankyouForUrReplyLe problème évoqué est évité Thread.Sleep (50) .Cause lorsque le thread principal attend 50 millisecs, les threads sont créés avant la prochaine itération.Ce n'est pas le problème principal ici, j'ai 5 prgresbrs pour montrer combien de progrès est fait .Les threads quittent juste après avoir montré quelques progrès – LoyalBanana