复合WPF EventAggregator订阅丢失(Composite WPF EventAggre

2019-09-19 02:10发布

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

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

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

Answer 1:

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

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

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

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



文章来源: Composite WPF EventAggregator subscriptions being lost