如何在C#中保留不干扰垃圾收集的对象列表?

时间:2010-06-09 06:53:28

标签: c# garbage-collection

我正在尝试在C#中维护Manager类中的对象列表。基本上,使用者类向Manager类注册,而管理器类维护对使用者类的引用的集合。现在,就我对GC的有限理解而言,保持对消费者类的引用将阻止消费者类被垃圾收集。

我所追求的是一种维护对类中的类的引用的方法,该类可能会或可能不会指向使用者类(以可确定的方式),具体取决于它是否已被垃圾回收。如何在c#中做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以使用WeakReference类创建对象的“弱”引用。也就是说,只要对象仅由引用引用,该对象将成为集合的候选对象。

如果它没有被强引用引用(只有弱引用),那么垃圾收集器会认为它是垃圾收集的候选者。

答案 1 :(得分:4)

您正在寻找weak references