一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

.NET Discovery 系列之四--深入理解.NET垃圾收集機制(下)

系列文章導航:

.NET Discovery 系列之一--string從入門到精通(上)

.NET Discovery 系列之二--string從入門到精通(勘誤版下)

.NET Discovery 系列之三--深入理解.NET垃圾收集機制(上)

.NET Discovery 系列之四--深入理解.NET垃圾收集機制(下)

.NET Discovery 系列之五--Me JIT(上)

.NET Discovery 系列之六--Me JIT(下)

.NET Discovery 系列之七--深入理解.NET垃圾收集機制(拾貝篇)


  上一節給大家介紹了 .NET GC的運行機制,下面來講下與GC相關的重要方法。

  第二節.GC關鍵方法解析

  1.Dispose()方法

  Dispose可用于釋放所有資源,包括托管的和非托管的,需要自己實現。

  大多數的非托管資源都要求手動釋放,我們應當為釋放非托管資源公開一個方法,實現釋放非托管資源的方法有很多種,實現IDispose接口的Dispose方法是最好的,這可以給使用你類庫的程序員以明確的說明,讓他們知道怎樣釋放你的資源;而且C#中用到的using語句快,也是在離開語句塊時自動調用Dispose方法。

  這里需要注意的是,如果基類實現了IDispose接口,那么它的派生類也必須實現自己的IDispose,并在其Dispose方法中調用基類中Dispose方法。只有這樣的才能保證當你使用派生類實例后,釋放資源時,連同基類中的非托管資源一起釋放掉。

  插曲:使用using與try+finally的區別

  可以說2者沒有任何區別,因為using只是編輯器級的優化,它與try+finally有著相同的作用,以下是一段使用using的代碼,它在IL階段也是以try+finally呈現的:

  C#:

public partial class _Default : System.Web.UI.Page
{
  
protected void Page_Load(object sender, EventArgs e)
  {
    
using (DataSet ds = new DataSet())
    {
    }
  }
}

NET技術.NET Discovery 系列之四--深入理解.NET垃圾收集機制(下),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产成人亚洲精品91专区手机 | 一本色道 | 99久久精品国产免看国产一区 | 国产日韩欧美不卡www | 欧美一级欧美一级高清 | 伊人久久婷婷 | 日本韩国三级在线 | 国产成人亚洲精品影院 | 欧美特黄一级片 | 国产产一区二区三区久久毛片国语 | 亚洲最大的成人网 | 91精品一区二区三区在线观看 | 亚洲热在线 | 免费在线观看黄网站 | 亚洲国产欧美国产第一区二区三区 | 真实国产伦在线视频免费播放 | 91精品啪国产在线观看免费牛牛 | 亚洲欧美激情综合第一区 | 久久精品中文 | 国产欧美曰韩一区二区三区 | 国产精品1区2区3区在线播放 | 911亚洲精品国内自产 | 91网站在线看 | 一本色道久久综合亚洲精品高清 | 日韩欧美激情视频 | 日本欧美一区二区免费视 | 有码中文字幕在线观看 | 亚洲一区不卡 | 特黄视频免费看 | 久久综合一区二区三区 | 狠狠干2023 | 成人福利在线免费观看 | 韩国一级爽快片淫片高清 | 午夜欧美性视频在线播放 | 国产精品2020在线看亚瑟 | 成人国产精品999视频 | 一本大道加勒比久久综合 | 国产成人啪精品午夜在线播放 | 久久精品国产夜色 | 性视频小说 | 91精品欧美综合在线观看 |