Caliburn.Micro未调用OnUnhandledException

时间:2017-06-04 12:38:10

标签: c# exception-handling caliburn.micro

我已经在我的引导程序中覆盖了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?

2 个答案:

答案 0 :(得分:0)

根据Caliburn.Micro GitHub看来,这是一个已知的问题,并且是他们积极致力于解决的问题。您可能希望加入那里的对话,看看目前是否有任何止损解决方案。

答案 1 :(得分:0)

background threads and WPF看起来这是一个问题,而不是事件处理程序。

链接的问题有一个解决方案,但它可能是我们(Caliburn.Micro)可以帮助的。