Task
TPLを介して生成された非同期で実行される複雑な関数がいくつかありますが、予期しない方法で失敗することがあります。このような障害が発生した場合、これはプログラミングエラーを示しており、プログラムの状態が破損している可能性があります。したがって、プログラムで例外をキャッチして処理し、「リンプオン」したくないので、プロセスをクラッシュさせて終了させます。
また、Windowsエラー報告システムがクラッシュとして検出し、ミニダンプのキャッチやMicrosoftへの送信など、すべての便利なデバッグ処理を実行するように、この処理を終了させたいと考えています。
これは、エラー状態でプログラムが何をすべきかについてのあなたの意見に反するかもしれないことを私は理解していますが、問題はそれについてではありません。
私が抱えている問題は、例外がタスクから発生するため、プロセスがすぐにクラッシュすることはないということです。しばらくして、ガベージコレクターがその知恵で「監視されていない」例外を収集することを決定したときにクラッシュします。
プロセスをすぐにクラッシュさせたいのは...
- 実際のエラーからのコールスタックとスレッドダンプは、クラッシュダンプで収集したいものです
- プロセスが「足を引きずり」、後で不確定な時間にクラッシュすると、破損している可能性のあるプログラム状態で動作するため、さらに損傷を引き起こす可能性があります。
- ユーザーは、どの操作が実際にクラッシュを引き起こしたのかについて混乱します
つまり、問題は次のとおりです。
Task
Windowsエラー報告が有用なミニダンプを作成できるように、TPLで作成された非同期からプロセスをクラッシュさせるにはどうすればよいですか?
前もって感謝します!