アプリケーションが終了したときにバックグラウンドスレッドが終了するようにする方法は?

StackOverflow https://stackoverflow.com/questions/3464548

質問

背景スレッドを備えたASP.NETアプリケーションがあります。スレッドは、アプリケーションが開始されると開始され、アプリケーションが終了すると優雅に停止します。共有ホストでウェブサイトを実行しています。残念ながら、アプリケーションが終了したときにアプリケーションのイベントをトリガーしない場合があります。とにかくスレッドは殺されると思いますが、そうではありません。現在、バックグラウンドで4つのスレッドを実行しています。以前の3回は、アプリケーションが開始され、現在のアプリケーションセッションから1つが開始されました。アプリケーションが終了したときにスレッドがシャットダウンすることを確認するにはどうすればよいですか?スレッドがアプリケーションがリセットされているかどうかを確認する方法はありますか? 持っていました リセットされましたか?または、アプリケーションの起動時にこれらの不正なスレッドをチェックして殺す方法はありますか?前もって感謝します。

役に立ちましたか?

解決

threadpool.queueuserworkitem()を使用して、バックグラウンドでコードを実行します。これは、AppDomainがアンロードされたときに終了します。タグによると、バックグラウンドワーカーを使用していると仮定しています。代わりにこれを試すことをお勧めします。 (より良い答えを引き出すためにサンプルコードを追加することを検討してください。)

マネージドスレッドプール: http://msdn.microsoft.com/en-us/library/0ka9477y.aspx

前景/背景スレッド: http://msdn.microsoft.com/en-us/library/h339syd0.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top