バックグラウンド スレッドを持つ asp.net アプリケーションがあります。スレッドはアプリケーションの開始時に開始され、アプリケーションの終了時に正常に停止されます。共有ホストで Web サイトを実行しています。残念ながら、アプリケーションの終了時にアプリケーションが Application_End イベントをトリガーしないことがあります。とにかくスレッドが殺されると思いますが、そうではありません。現在、バックグラウンドで実行されている 4 つのスレッドがあります。アプリケーションが開始された前回から 3 つ、現在のアプリケーション セッションから 1 つ。アプリケーションの終了時にスレッドが確実にシャットダウンされるようにするにはどうすればよいですか? アプリケーションがリセットされたか、またはリセットされたかをスレッドが確認する方法はありますか? または、アプリケーションの起動時にこれらの不正なスレッドをチェックして強制終了する方法はありますか? 前もって感謝します。
1 に答える
4
ThreadPool.QueueUserWorkItem() を使用してコードをバックグラウンドで実行します。これは、AppDomain がアンロードされると終了します。タグによると、バックグラウンドワーカーを使用していると思います。代わりにこれを試すことをお勧めします。(サンプル コードを追加して、より適切な回答を引き出すことを検討してください。)
マネージド スレッド プール: http://msdn.microsoft.com/en-us/library/0ka9477y.aspx
フォアグラウンド/バックグラウンド スレッド: http://msdn.microsoft.com/en-us/library/h339syd0.aspx
于 2010-08-12T04:07:34.480 に答える