.NET プログラムがSystem.Threading.ThreadPool
スレッドを作成して開始した後、プログラムが (自然にまたはクラッシュして) 終了した場合:
Thread
が生き残り、単独で処理を続けることは可能ですか?- メインの UI スレッドが終了したためにアプリが終了したように見えても、バックグラウンド スレッドが目に見えないまま実行を続ける可能性はありますか?
.NET プログラムがSystem.Threading.ThreadPool
スレッドを作成して開始した後、プログラムが (自然にまたはクラッシュして) 終了した場合:
Thread
が生き残り、単独で処理を続けることは可能ですか?いいえ。定義上、プロセスのスレッドの 1 つがまだ動作している場合、それは実際には終了していません。
スレッドはプロセスから独立して存在することはできません。
マネージ スレッド プール内のスレッドはバックグラウンド スレッドです。つまり、それらの
IsBackground
プロパティは true です。これは、ThreadPool
すべてのフォアグラウンド スレッドが終了した後、スレッドがアプリケーションを実行し続けないことを意味します。