复合WPF EventAggregator订阅丢失

时间:2009-07-15 17:09:19

标签: wpf events eventaggregator cal

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

此事件似乎随意停止工作。有时当我运行应用程序时,我可以毫无问题地触发事件,有时我只能在模块停止接收事件之前触发它几次。

当我查看调试器时,CAL EventAggregator仍然有事件,但该事件没有订阅。 EventAggregator如何失去订阅?

1 个答案:

答案 0 :(得分:4)

原来是垃圾收集器删除了订阅。我将不得不阅读内部,但当我更换

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

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(
    SomeFunction, ThreadOption.UIThread, true);
它开始工作了。 UI线程参数不是我的问题,但对于其他人来说,确保您在正确的线程上处理事件可能很重要。