有没有办法检查WeakReference引用的对象是否有GC根?
我有一个相当复杂的动态枚举器包装机制,它不应该在MoveNext()之后保存对记录的任何引用,但是如果需要可以动态地重新加载它以避免内存不足的情况。
现在我想创建一个单元测试,确保这些记录非常适合垃圾收集,并且不会因某些重构或其他更改而改变。 =>有没有办法让WeakRefernce跟踪的对象有一个GCRoot而没有实际调用GC.Collect()?
答案 0 :(得分:1)
据我所知,没有。
为了确定引用何时具有保持活动的GCRoot,需要进行垃圾收集算法。
在单元测试中,GC.Collect()
没有任何问题,imo。