如果我在类 Foo 中实现析构函数,则 Foo 的实例将在终结队列上密切跟踪。当 Foo 的实例被垃圾收集时,我知道 CLR 会看到终结队列中的条目,并通过将对象移出堆并进入终结可达表来对该对象进行特殊处理。然后......那个垃圾收集周期没有其他任何事情发生?
在下一个垃圾回收周期中总是会调用 finalize() 吗?
为什么在将我的对象复制到 freachable 表后不立即调用 finalize?(这似乎是额外的不必要的复杂性)
如果我在类 Foo 中实现析构函数,则 Foo 的实例将在终结队列上密切跟踪。当 Foo 的实例被垃圾收集时,我知道 CLR 会看到终结队列中的条目,并通过将对象移出堆并进入终结可达表来对该对象进行特殊处理。然后......那个垃圾收集周期没有其他任何事情发生?
在下一个垃圾回收周期中总是会调用 finalize() 吗?
为什么在将我的对象复制到 freachable 表后不立即调用 finalize?(这似乎是额外的不必要的复杂性)