如何在不阻止垃圾收集的情况下订阅事件?
How to subscribe to an event without preventing garbage collection?
假设 AppConfiguration.Instance
是一个单身人士。
现在假设我的 UI 动态添加了一个按钮,如果配置发生更改,该按钮应更改其文本,因此我的应用可以执行以下操作:
AppConfiguration.Instance.Changed += Changed_Handler;
关于按钮的代码,但我不想这样做,因为在用户导航到另一个屏幕并且按钮从表单中删除后,这会阻止按钮的垃圾收集
我的问题是:是否有一种设计模式可以在不阻止垃圾收集的情况下监听事件,而无需使用 AppConfiguration.Instance.Changed -= Changed_Handler;
手动取消订阅事件?
在写完问题并进行最后一次发布前搜索弱绑定后,我遇到了 weak event pattern 完全符合我的要求
假设 AppConfiguration.Instance
是一个单身人士。
现在假设我的 UI 动态添加了一个按钮,如果配置发生更改,该按钮应更改其文本,因此我的应用可以执行以下操作:
AppConfiguration.Instance.Changed += Changed_Handler;
关于按钮的代码,但我不想这样做,因为在用户导航到另一个屏幕并且按钮从表单中删除后,这会阻止按钮的垃圾收集
我的问题是:是否有一种设计模式可以在不阻止垃圾收集的情况下监听事件,而无需使用 AppConfiguration.Instance.Changed -= Changed_Handler;
手动取消订阅事件?
在写完问题并进行最后一次发布前搜索弱绑定后,我遇到了 weak event pattern 完全符合我的要求