完成并推广到第1代

时间:2016-01-08 16:12:34

标签: c# garbage-collection finalization

我的问题是,我在第0代中有对象,并且我也覆盖了最终化方法。

当gc收集gen0时,看到它必须最终确定,所以不立即释放它们,并将这些对象提升为gen1?因此,如果gc收集gen1,这些只会被重新发布。 假设这些对象不会再次使用,它们就是垃圾

谢谢!

1 个答案:

答案 0 :(得分:2)

  

在GC对象的垃圾收集完成时调用Finalize方法   已经决定成为垃圾。这意味着无法回收这些对象的内存   因为Finalize方法可能会执行访问字段的代码。因为一个终结 -   有能力的对象必须在集合中存活,它会被提升到另一代,强制对象   活得比它应该长得多。里希特j。 -CLR通过C#

所以是的,它得到了提升:)