如何防止事件订阅阻止垃圾回收

By simon at 2018-02-28 • 0人收藏 • 36人看过

我有一个班级(模型),其中的一个对象作为蓝图, 另一类(ModeledRelation)的对象)。中号odel定义了一个事件 ModeledRelation总是订阅以便在Model中被通知 改变,所以ModeledRelation对象s可以1:1反映这些变化。 现在,ModeledRelation对象在其他地方使用一段时间 终于走出了scOPE。但是因为这个事件仍然有一个对他们的参考 他们阻止垃圾收集。 当然,我正式需要这个对象如果事件已经发生,那么已经开了GC 只有参考左边。我知道我可以退订该活动 ModeledRelation.Dispose但这需要明确地调用Dispose和 这对于一个纯粹管理的班级来说感觉有点过于狡猾。我也想要成为 在ModeledRelation对象悄然滑出范围的情况下是安全的 然后没有内存泄漏。 也许我是t思想方向完全错误,这必须完成 不同。

1 个回复 | 最后更新于 2018-02-28
2018-02-28   #1

你应该看看弱事件模式:

登录后方可回帖

Loading...