有没有办法检查GC收集哪些类实例,哪些不是? 我找到的一个选项是通过Test检查类,如下所述:
How can I write a unit test to determine whether an object can be garbage collected?
答案 0 :(得分:2)
有没有办法检查GC收集哪些类,哪些不是?
不,因为要检查某个对象,您仍然需要对它进行引用,这会阻止其收集。
您可以使用WeakReferences构建管理,但这会很笨拙且代价高昂。当然不适用于所有对象。
更重要的是,你不应该需要这个。如果你认为你这样做,分析那个思想训练。
答案 1 :(得分:0)
创建一个ReferenceTester
类,该类将包含一周的Dictionary
个引用
字典使用它们来测试类是否存在。
然后调用GC.Collect()。
然后再次检查ReferenceTester
是否仍有课程。
答案 2 :(得分:-1)
您还可以通过调用终结器来判断对象何时被垃圾收集。这不是100%保证,因为您仍会在阻止收集的类上调用GC.SupressFinalize()。