.Net Dispose 記憶體釋放

.Net Dispose 記憶體釋放

  1. Dispose()做什
    A:標示自己已經沒有用了,告訴GC可以直接把我給回收了,但實際回收也要等GC啓動時。

  2. Managed resource沒有執行Dispose()會怎樣?
    A : Resource在GC回收時,第一時間點就被回收,只是晚點(第N次GC啓動時)被回收。

3.哪些是Unmanaged Resources
A:最常見的Unmanaged資源類型就是包裝作業系統資源的物件,例如檔案、視窗、網路連接或資料庫連接都屬於這類資源。雖然記憶體回收行程能夠追蹤封裝Unmanaged資源的物件存留期,但是它並不知道如何釋放和清除Unmanaged資源。

4.用Dispose的優點
A:第一次的GC回收就被回收.

  1. Dispose(), finalizer的差異
    A: Dispose()要Programmer程式有寫到. finalizer是一定會被執行到.

6.使用Unmanaged Resources怎樣釋放
A:要實作Dispose(),外加finalizer。如果沒有就等程式結束纔會被釋放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章