我有一个内存泄漏问题。在 TopClass 的类实例超出范围之前,obj 的实例是否有资格进行垃圾回收?
public class TopClass
{
public void MyFunction()
{
TestClass obj = new TestClass();
obj.PropertyChanged += (s,e) => { //Do some code };
obj = null;
}
}
此外,这会使所有实例化 TopClass 并调用 MyFunction() 的对象不符合 GC 的条件,对吧?
我知道在托管代码中,一旦应用程序超出范围,所有对象都符合条件,但我想知道当我的应用程序正在运行时,这会导致内存泄漏。对吧?
最佳答案
没有。 obj
将被收集。此代码中没有任何内容会导致强引用。
对象可以通过附加为事件处理程序来保持事件状态,但对象不能通过具有事件处理程序来保持事件状态。
关于.net - 这会导致内存泄漏(在 .NET 中)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315464/