天天看點

好記性不如爛筆頭——垃圾回收

垃圾回收(GC,Garbage Collection)

資源分為托管資源和非托管資源。托管資源由公共語言運作庫處理和回收,無須幹預;而非托管資源則須顯式釋放。

如何釋放非托管資源?

方法有二:

1、析構函數

2、實作IDisable接口

析構函數是在對象被回收時觸發,是以起不到在指定時點釋放的效果;并且可能對性能有負面的影響。因為析構函數會被隐式地翻譯為Finalize()方法,但垃圾回收器在回收時會隻回收沒有Finalize()的記憶體,而将有這個方法的記憶體對象标記為“準備終止”,留待下次回收。

實作IDisable接口的,則比較合理,可以随時調用,顯式釋放。

using(...)方式可以強制調用Disable方法。

GC回收的是垃圾,值類型無須回收,引用類型才需要。沒有被引用的引用類型就是垃圾。

繼續閱讀