我试图通过在析构函数中使用console.WriteLine()来确保释放某个类的实例,但输出永远不会显示。
我仔细搜索过任何挥之不去的引用,以及事件订阅而没有找到任何引用。仅仅为了我自己的理智,在我继续搜索之前,有人可以确认:
GC.Collect();
GC.WaitForPendingFinalizers();
无论物体有多小,都会强行完全回收?
答案 0 :(得分:3)
一般来说,这应该可以清理大部分内容。
但是,如果你的终结器中有代码,它是possible that you will need to call GC.Collect()
twice,因为第一次会导致终结器执行,但是在终结器完成之后才能清除实际内存,这意味着后续调用将抓住对象。