我对物体上的垃圾收集过程感到困惑。垃圾收集如何处理对象引用?
object A = new object();
object B = A;
B.Dispose();
通过调用处置可变只有B,创建对象将不会被垃圾收集 为对象仍然是已经A.引用
现在做下面的代码工作上面一样?
public static image Test1()
{
Bitmap A = new Bitmap();
return A;
}
现在我从其他方法调用这个静态函数。
public void TestB()
{
Bitmap B = Test1();
B.Dispose();
}
静态函数Test1返回对Bitmap对象的引用。该引用在另一个变量B中保存为 。通过调用B上的Dispose,B和对象之间的连接会丢失,但是从Test1传递的引用会发生什么情况。在功能TestB的范围完成之前它会保持活动状态吗?
有没有什么办法可以立即处理从静态函数传递来的引用?
Garbage收集不是参考计数。 – 2010-08-13 17:45:45
垃圾收集的重点在于,您不必关心何时或如何释放内存。原则上,在一个拥有大量内存的系统上,垃圾收集可能不会发生,仅仅因为在应用程序终止时让所有内容都被清理起来会更有效率。 – 2010-08-13 18:21:44