共用方式為


資源管理

更新:2007 年 11 月

所有物件都會消耗系統資源,如記憶體、檔案控制代碼及資料庫連接等。Common Language Runtime (CLR) 能自動管理資源,您通常不必擔心釋放不需要使用的物件。然而,瞭解資源管理的運作方式能幫助您將應用程式設計得更有效率。

記憶體回收

CLR 運用一種稱為記憶體回收的系統,以管理取得配置的資源。當您的應用程式中任何執行碼均無法與某一個物件取得聯繫的時候,系統記憶體回收器會將該物件的資源釋放。由於記憶體回收演算法不是決定性的,因此您無法判斷 CLR 何時會釋放物件的資源。以下章節將描述 Visual Basic 當中資源管理方式的一些改變。

將物件指派至 Nothing

Nothing 是由 Visual Basic 所使用的關鍵字,表示物件變數並未包含物件的參考。上一個版本的 Visual Basic 建議您指派未使用的物件至 Nothing 以使物件變數與物件分離,並釋放資源。您仍然可以將未使用的物件指派至 Nothing,但由於 Visual Basic 管理資源的方式,這個過程並不保證物件會立即釋放。一般而言,您只能將存留期長的物件 (如共用成員或全域變數) 指派至 Nothing。

處置

某些物件支援一種名為 Dispose 的方法,目的是為更快速地釋放系統資源。支援 Dispose 方法的類別 (Class) 必須實作 IDisposable 介面。當您要釋放物件資源時,需要明確呼叫 Dispose 方法。例如:

ThisObject.Dispose()

Finalize

某些物件支援另一種名為 Finalize 的方法,當一個物件被釋放時,它會自動執行,並可以用於進行其他清除工作。Finalize 方法類似於上一版 Visual Basic 中使用的 Class_Terminate() 方法。當物件變得無法存取時,CLR 最終會呼叫該物件的 Finalize 方法。由於記憶體回收演算法不是決定性的,因此可能會立即呼叫 Finalize 方法,也可能在數小時後才呼叫該方法。

請參閱

概念

物件存留期:物件的建立和終結

初始化及終止元件

參考

Nothing (Visual Basic)

Dispose

IDisposable