【发布时间】:2015-04-28 15:07:12
【问题描述】:
我将代表列表存储在字典中,然后在需要时调用它们,问题是,当 UI 不再可见时,对代表的引用仍然存在,当 UI 再次出现时,它是一个新的例如,除了旧的引用之外,还添加了新的引用,因此调用了两倍的数量。
抛开设计问题不谈,有没有办法在存储引用时对引用施加约束,如果字典是唯一存储的地方,则丢弃它并返回 null?
【问题讨论】:
-
你不知道 UI 什么时候会变得不可见吗?这将是删除所有对它的引用的好时机。
-
有什么方法可以在字典中使用Weak Reference 来表示委托?
-
@Klors,我认为关闭 UI 是唯一的方法,WeakReference 不能保证它会在关闭 UI 和重新打开之间的空间中被删除。
-
@لَاإِلٰهَإِلَّاالله 你可以在再次打开用户界面之前强制垃圾收集
标签: c# reference garbage-collection