4

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

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

当我查看调试器时,CALEventAggregator仍然有事件,但事件没有订阅。怎么EventAggregator会失去订阅?

4

1 回答 1

4

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

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

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

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

于 2009-07-15T17:26:48.987 回答