有没有办法检查WeakReference引用的对象是否有GC根?

时间:2015-02-18 09:29:06

标签: .net garbage-collection weak-references

有没有办法检查WeakReference引用的对象是否有GC根?

我有一个相当复杂的动态枚举器包装机制,它不应该在MoveNext()之后保存对记录的任何引用,但是如果需要可以动态地重新加载它以避免内存不足的情况。

现在我想创建一个单元测试,确保这些记录非常适合垃圾收集,并且不会因某些重构或其他更改而改变。 =>有没有办法让WeakRefernce跟踪的对象有一个GCRoot而没有实际调用GC.Collect()?

1 个答案:

答案 0 :(得分:1)

据我所知,没有。

为了确定引用何时具有保持活动的GCRoot,需要进行垃圾收集算法。

在单元测试中,GC.Collect()没有任何问题,imo。