例外を処理する方法について少し混乱しています。バックグラウンドワーカー例外処理
私はいくつかの長い実行中のプロセスを実行するバックグラウンドワーカースレッドを持っています。私の理解は、バックグラウンドワーカースレッドで例外が発生した場合、コードはまだRunWorkerCompletedメソッドで終了します。
void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
throw e.Error;
この場合、bgWorker.RunWorkerAsync();の周りにtry catchブロックを置くことができます。コール、私はないと思いますか?
私はRunWorkerCompleted方法でキャッチされた例外を再スローしたい、どのように私は、スタックトレースを失うことなくこれを行うことができます - 私は正しいの上に持っているものでしょうか?例外を取り返したときに「スロー」を使うべきだと私はあなたに読んでいますか?
を試してみて、この特定の例外をキャッチすることができないでしょうRunWorkerCompletedメソッドでエラー処理を行う必要がありますか? RunWorkerCompletedメソッドのエラーを処理する方がよいでしょうか? – mHelpMe
ワーカースレッドで例外を処理すると、RunWorkerCompletedで取得できなくなり、DoWorkで処理できない場合は、何か問題があった場合にアプリケーションがクラッシュする可能性があります –