我有一个非UI线程,需要在上面进行消息泵。
通常的方法是在我的线程过程中调用Dispatcher.Run()
。
我想修改这个方法,使其在处理未处理的异常方面更加健壮。
我的第一步是:
for (;;)
{
var frame = new DispatcherFrame();
try
{
Dispatcher.PushFrame(frame);
break;
}
catch (Exception e)
{
frame.Continue = false;
Log("ThreadProc caught exception:\n{0}", e);
}
}
这段代码可以正常运行,并且在出现异常后允许调度程序继续传递消息。
有没有人知道这种方法可能存在的问题?