我在WPF应用程序中使用Prism。
我已订阅活动。
_iEventAggregator.GetEvent<MyEvent>().Unsubscribe(AddSubscription);
AddSubscription = _iEventAggregator.GetEvent<MyEvent>().Subscribe((i) =>
{
Added(ViewModel, i);
});
在其他一些类中发布事件。在调试模式下,它可以正常工作。但是当切换到释放模式时,它不能正常工作。即,订户方法未在源中被击中,并且该部件未执行。
如何检查此问题,有没有办法知道我的订阅成功并解决了此问题。
答案 0 :(得分:1)
发布事件时,您必须确保订阅者仍处于活动状态(即,已构建且未进行垃圾回收)。
除非您使用keepSubscriberReferenceAlive: true
进行订阅,否则仅订阅一项将无法使订阅者保持活动状态。
编辑:
如果您使用EventAggregator
使订阅者保持活动状态,请确保在不再需要订阅时将其丢弃,否则会导致内存泄漏。