在我的复合WPF应用程序我有发布在一个控制中,当用户双击事件。模块订阅事件并在必要时执行的操作。

此事件似乎停止随机工作。有时,当我运行该应用程序我可以触发,没有任何问题的情况下,其他时候我只能触发了几次模块停止接收事件之前。

当我看到在调试器中CAL EventAggregator仍然有事件,但事件没有预订。如何EventAggregator失去订阅?

有帮助吗?

解决方案

原来这是垃圾收集器移除所述订阅。我必须对内部读了起来,但是当我换成

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(SomeFunction);

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(
    SomeFunction, ThreadOption.UIThread, true);

它开始工作。在UI线程参数是不是我的问题,但对其他人来说可能是重要的,以确保您处理事件的正确的线程上了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top