6

我试图通过在析构函数中使用 console.WriteLine() 来确保某个类的实例被释放,但输出永远不会出现。

我仔细搜索了任何挥之不去的参考资料以及事件订阅,但没有找到。只是为了我自己的理智,在我继续搜索之前,有人可以确认一下:

GC.Collect();
GC.WaitForPendingFinalizers();

无论物体有多小,都会强制完全回收吗?

4

1 回答 1

5

一般来说,这应该清理大多数东西。

但是,如果你的终结器中有代码,你可能需要调用GC.Collect()两次,因为第一次会导致终结器执行,但是直到终结器完成后才能清理实际内存,这意味着后续调用会抓住物体。

于 2012-09-21T17:07:59.703 回答