C#.NETのプログラムで、atmost 5スレッドを開始しています。しかし、時にはそれらのスレッドのいくつかは、それに割り当てられた機能の実行が完了する前であっても、単に終了したり、死んでしまうことがあります。スレッドが死んでしまうのを防ぐ方法、またはC#.NETでスレッドを終了させる方法を教えてください。
ランダムに発生します。ブレークポイントを置いてコードをデバッグしようとするとうまくいきます。
そして、すべてのスレッドが割り当てられた関数を完全に実行することがあります。それらの間でリソースを共有することはありません。
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);
}
私は「のThread.sleep(50)は」最初のスレッドが実行され、それらの残りの部分はちょうど死ぬ見つめていた最後の行を削除した場合。
スレッドが死んでいる理由を説明できる人はいますか?
ThankyouForUrReply問題は、Thread.Sleep(50)の問題を避けています。メインスレッドが50ミリ秒待機すると、スレッドは次の繰り返しの前に作成されます。ここでの主な問題ではありません。5つのprgresbrを使用して、スレッドはいくつかの進捗状況を示した後に終了します。 – LoyalBanana