C 處理非託管資源

2022-04-04 00:29:48 字數 743 閱讀 6118

using

system;

//處理非託管資源

//例如:檔案控制代碼、網路連線、資料庫連線

//實現idisposable不意味著也應該實現乙個終結器,終結器會帶來額外開銷

//發布本機資源,要釋放本機資源就需要終結器

//如果實現了終結器,也應該實現idisposabel介面

//這樣本機資源可以早些釋放

namespace

}//2.實現system.idisposable

class

myclass1 : idisposable

}//3.雙重實現

class

myclass2 : idisposable

protected

virtual

void dispose(bool

disposing)

//...

//清理非託管

} _isdisposed = true

; }

~myclass2()//

只清理非託管

}class

program

finally

//如果這些大括號過多很容易混淆

//也可以使用using來完成此工作,在變數超出作用域會自動呼叫dispose()

using (var ins = new

myclass1())}}

}

C 託管資源和非託管資源

託管資源指的是.net可以自動進行 的資源,主要是指託管堆上分配的記憶體資源。託管資源的 工作是不需要人工干預的,有.net執行庫在合適呼叫垃圾 器進行 非託管資源指的是.net不知道如何 的資源,最常見的一類非託管資源是包裝作業系統資源的物件,例如檔案,視窗,網路連線,資料庫連線,畫刷,圖示等。這...

C 託管資源與非託管資源

在.net 程式設計環境中,系統的資源分為託管資源和非託管資源。託管資源 net平台中,clr為程式設計師提供了一種很好的記憶體管理機制,使得程式設計師在編寫 時不要顯式的去釋放自己使用的記憶體資源 這些在先前c和c 中是需要程式設計師自己去顯式的釋放的 這種管理機制稱為gc garbage col...

C 託管資源 與 非託管資源

託管資源一般是指被clr控制的記憶體資源,這些資源的管理可以由clr來控制,net可以自動進行 主要是指託管堆上分配的記憶體資源。例如程式中分配的物件,作用域內的變數等 非託管資源 不受clr控制和管理的資源,比如檔案流,資料庫的連線,網路連線,系統的視窗控制代碼,印表機資源等,可以認為作業系統資源...