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