別のメソッドを実行するバックグラウンド ワーカーで例外を返す最もエレガントな方法は何ですか?そのメソッドはバックグラウンド ワーカーの外部でも実行できますか?
たとえば、以下は SomeMethod() がエラーを発生させる非常に単純化された例です。エラーを表示する必要がありますが、バックグラウンド ワーカーにない場合は問題ありませんが、ある時点で表示します。
private void WorkerDoWork(object sender, DoWorkEventArgs e)
{
getMethod = SomeMethod();
}
private void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
}
private List<SomeVar> SomeMethod()
{
try
{
throw new DivideByZeroException();
}
catch (Exception e)
{
//Return Exceptions from here to Worker_RunWorkerCompleted
//Otherwise show message if not in bgw
var result = ModernDialog.ShowMessage("Error occurred...." + e.Message, "ErrorTitle", MessageBoxButton.OKCancel);
}
}
この例は、DoWork メソッド内でエラーが発生した場合にエラーを返す方法を示していますが、この例での最適な方法についてアドバイスが必要です。
理想的にはSomeMethod()
、バックグラウンド ワーカーの内部と外部の両方を呼び出す機能が必要です。