私のアプリケーションは、独自のスレッドで複数の長時間実行関数/メソッドを開始します。これらのスレッドの1つでエラーが発生すると、プログラムがクラッシュします(予想どおり)。しかし、私の質問は、アプリケーションによって生成されたすべてのスレッドが実行を停止するのですか?それともどこかでぶらぶらしていますか?もしそうなら、私はそれらを殺すことができるようにそれらを監視するために別のアプリケーションを書く必要がありますか?
ありがとうございました!
私のアプリケーションは、独自のスレッドで複数の長時間実行関数/メソッドを開始します。これらのスレッドの1つでエラーが発生すると、プログラムがクラッシュします(予想どおり)。しかし、私の質問は、アプリケーションによって生成されたすべてのスレッドが実行を停止するのですか?それともどこかでぶらぶらしていますか?もしそうなら、私はそれらを殺すことができるようにそれらを監視するために別のアプリケーションを書く必要がありますか?
ありがとうございました!
プロセスが終了すると、そのプロセスに含まれるすべてのスレッドが終了します。プロセスの外部にスレッドを存在させることはできません。アプリケーションのクラッシュ=プロセスの終了。
スレッドからプロセスをスポーンしている場合、スポーンしたプロセスは、スポーンプロセスが終了した後も実行を継続します。タスクマネージャーとコードでプロセスツリーを強制終了できますが、デフォルトでは、アプリケーションが正常に終了しない場合、生成されたプロセスは実行を継続します。
私はあなたが言ったときにこれがあなたが意味することだと思います
私のアプリケーションは、独自のスレッドで複数の長時間実行プロセスを開始します
しかし、多分私はあなたが言うことを意味していることを誤解しています
すべてのスレッドを作成したプロセスが強制終了/中止された場合、スレッドはOSによって自動的に中止されます。言い換えると、実行中のプロセス=少なくとも1つの実行中のスレッド、強制終了されたプロセス=すべてのスレッドが終了しました。