在我的复合WPF应用程序我有一个发布在一个控制中,当用户双击一个事件。 模块订阅事件,并在必要时执行的操作。
此事件似乎停止随机工作。 有时,当我运行应用程序,我可以触发没有任何问题的情况下,其他时间我只能触发了几次模块停止接收事件之前。
当我看到在调试器中CAL EventAggregator
仍然有事件,但事件没有预订。 如何EventAggregator
是失去订阅?
在我的复合WPF应用程序我有一个发布在一个控制中,当用户双击一个事件。 模块订阅事件,并在必要时执行的操作。
此事件似乎停止随机工作。 有时,当我运行应用程序,我可以触发没有任何问题的情况下,其他时间我只能触发了几次模块停止接收事件之前。
当我看到在调试器中CAL EventAggregator
仍然有事件,但事件没有预订。 如何EventAggregator
是失去订阅?
原来,这是垃圾收集器删除订阅。 我必须对内部读了起来,但是当我更换
this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(SomeFunction);
同
this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(
SomeFunction, ThreadOption.UIThread, true);
它开始工作。 在UI线程参数是不是我的问题,但对其他人来说可能是重要的,以确保你在正确的线程上处理事件了。