【发布时间】:2010-10-11 20:49:06
【问题描述】:
当您确保所有句柄、实现IDispose 的东西都被释放时,托管系统中是否有可能泄漏内存?
会不会有一些变量被遗漏的情况?
【问题讨论】:
-
另外,我看到 IDisposable 在人们编写的类上没有正确实现。它确实发生了。当然是真正的边缘案例,您可能只是在谈论使用框架中已有的东西。
-
可能,据我所知,一旦不再引用该对象,就会处置该对象。如果两个对象相互引用而您忘记从其中一个对象中删除引用怎么办。
-
@Noypi Gilas:这是一个常见的错误假设。据我所知,垃圾收集器从不 dispose 任何东西,他们甚至不知道 IDisposable 接口。垃圾收集器只知道当对象无法访问时它们调用的终结器(并且相应的终结器不会被抑制)。
标签: c# .net memory-leaks garbage-collection managed