我找不到答案。

可以说我创建了一个包含其他对象B,C等的对象A。

首先将创建对象A并将其添加到可观察的集合中。后来,对象A从Observable集合中删除。 ObservableCollection持有对对象A的唯一引用。

有什么方法可以检测到对象A被销毁,从而使对象A可以手动调用B.dispose和C.dispose并防止内存泄漏?

这是在.Net 4.0中,但是对象B和C是.Net 3.5或com对象,我不确定在处置A时它们会自动处置。 (我可能是错的)。

提前致谢。

最佳答案

是。当某个对象不再可访问时,它就有资格进行垃圾回收。如果它是所引用对象的唯一根,则它们也有资格进行收集。如果具有终结器,则该终结器将由GC调用。关于对象的确定性处置和非确定性处置,有许多方面需要了解。它的引用可以在此之前完成,反之亦然。从这里开始:


http://msdn.microsoft.com/en-us/library/system.object.finalize(v=vs.100).aspx

关于c# - 物体如何处置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25967043/

10-10 16:37