追放されているスレッドを手に入れました.誰が私のスレッドを殺しているのか、そしてその理由を知りたいです.
スレッドが OS によって強制終了されていることがわかりましたが、これを確認し、可能であればなぜそれが強制終了されているのかを知りたいです。
スレッドに関しては、死ぬ前に少なくとも 40 分の実行があると断言できますが、約 5 分で突然死んでしまいます。
public void RunWorker()
{
Thread worker = new Thread(delegate()
{
try
{
DoSomethingForALongLongTime();
}
catch(Exception e)
{
//Nothing is never logged :(
LogException(e);
throw e;
}
});
worker.IsBackground = true;
worker.SetApartmentState(System.Threading.ApartmentState.STA);
worker.Start();
}
編集:回答への対処
- Try/Catch 考えられる例外:
実装されており、何もキャッチしません:( - メイン スレッドの停止:
このスレッドは Web サーバーによって作成され、引き続き実行されます。 - 作業完了:
作業は完了していません。最終的にデータベースに影響を与えるため、スレッドが終了したときに作業が完了したかどうかを確認できます。
これらのことを考えた結果、この質問にたどり着きました。誰が私のスレッドを殺しているのですか??
ps。ろうそくの棒を持っているのは、リビングルームにいるゴールデン夫人ではありません:)