我已经在我的引导程序中覆盖了OnUnhandledException,但是在以下场景中它没有被调用:
public class Foo : IHandle<Bar> {
public void Handle(Bar message) {
// Do something that requires UI thread
}
public void DoSomething() {
eventAggregator.PublishOnBackgroundThread(new Bar());
}
}
当调用handle方法时,它将抛出InvalidOperationException: The calling thread must be STA, because many UI components require this.
,因为它是在后台线程而不是在UI线程上执行的:
我的引导程序中OnUnhandledException
从未捕获到该异常。它也没有被Application.DispatcherUnhandledException
事件处理程序捕获。
如何创建一个通用的异常处理程序来捕获这些类型的异常,而不必在任何地方实现try / catch?
答案 0 :(得分:0)
根据Caliburn.Micro GitHub看来,这是一个已知的问题,并且是他们积极致力于解决的问题。您可能希望加入那里的对话,看看目前是否有任何止损解决方案。
答案 1 :(得分:0)
background threads and WPF看起来这是一个问题,而不是事件处理程序。
链接的问题有一个解决方案,但它可能是我们(Caliburn.Micro)可以帮助的。