问题描述
使用Prism的EventAggregator`
可能会出现事件函数没有被触发调用的问题。
原因分析:
事件可能被C#垃圾回收了。
Prism官方的说明:
“keepSubscriberReferenceAlive” When langword=“true”, the cref=“PubSubEvent{TPayload}” keeps a reference to the subscriber so it does not get garbage collected.
解决方案:
keepSubscriberReferenceAlive参数设置为true,默认为false。
//订阅事件
ea.GetEvent<StationChangedEvent>().Subscribe(StationChanged,true);
在使用Prism框架的EventAggregator时,可能会遇到事件处理函数未被调用的情况,这通常是由于事件订阅者被C#的垃圾回收机制清除导致。Prism官方提供了一个解决方案,即通过设置`keepSubscriberReferenceAlive`参数为`true`,保持对订阅者的引用,防止其被回收。例如:`ea.GetEvent<StationChangedEvent>().Subscribe(StationChanged,true);`这样可以确保事件订阅者存活,保证事件的正常触发。
2483

被折叠的 条评论
为什么被折叠?



