我對物體上的垃圾收集過程感到困惑。垃圾收集如何處理對象引用?
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