私のアプリケーションは、自分のスレッド上で複数の長時間実行する関数/メソッドを起動します。これらのスレッドの1つでエラーが発生すると、プログラムがクラッシュします(期待どおり)。私の質問は、しかし、アプリケーションによって生成されたすべてのスレッドが実行を停止するのですか?彼らはどこかにぶら下がっていますか?もしそうなら、それらを監視するために私はそれらを殺すことができる別のアプリケーションを書く必要がありますか?私のマルチスレッドアプリケーションが失敗した後、未完了のスレッドがハングアップしますか?
ありがとうございました!
ヒント:プロセスとは何か、スレッドとどのように違うのですか? –
この写真は彼らが言うよりも少し複雑です。あなたはプロセスをクラッシュしません。未処理の例外がアプリドメインをクラッシュさせます。管理されたすべてのスレッドは、そのアプリドメイン内で強制終了されます。通常は、そのアプリケーションドメインをホストするプロセスも殺されることになります。しかし、asp.netサーバのようなどこかでホストすれば、それは生き残るかもしれません...学問の知識が必要な時にジョンスケットはどこですか? :)私はこのケースではネイティブのスレッドに何が起こるかと言うことができません...とperhapse他の不明な状況があるかもしれない.... –