【发布时间】:2013-11-08 16:03:12
【问题描述】:
在运行另一个方法但该方法也可以在后台工作程序之外运行的后台工作程序中返回异常的最优雅方式是什么?
例如,下面是一个非常简化的示例,其中 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);
}
}
此example 展示了如果在 DoWork 方法中引发错误,如何将错误传回,但希望对我的示例中的最佳方法提供一些建议。
理想情况下,我希望能够在后台工作人员内部和外部调用SomeMethod()。
【问题讨论】: