如果我在后台调用调度程序,请执行以下操作:
Application.Current.Dispatcher.BeginInvoke(new Action(() => MethodToCall()), DispatcherPriority.Background);
我是否应该将上面的代码包装在Try&抓住或放置尝试&赶上MethodToCall()
方法?
非常感谢,
答案 0 :(得分:4)
如果您真的有案例可以捕获特定的例外,那么try { } catch
应该放在MethodToCall
内。
答案 1 :(得分:3)
您好BeginInvoke将在anoster堆栈中执行您的方法。 因此,围绕“Application.Current.Dispatcher.BeginInvoke”的try-catch将无效。
你需要做这样的事情:
Application.Current.Dispatcher.BeginInvoke(() => {
try
{
MethodToCall();
}
catch
{
//handle
}
), DispatcherPriority.Background);
或简单地在“MethodToCall”中。
正如ChrisF所说。