最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于.NET BitmapImage 內(nèi)存釋放問題的解決方法詳解

 更新時間:2013年05月15日 12:08:42   作者:  
本篇文章是對.NET BitmapImage 內(nèi)存釋放問題的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

網(wǎng)上查到的代碼,多數(shù)的寫法使用MemoryStream來實(shí)現(xiàn):

復(fù)制代碼 代碼如下:

new Thread(new ThreadStart(() => {
    var bitmap = new BitmapImage();
    bitmap.BeginInit();

    using (var stream = new MemoryStream(File.ReadAllBytes(...))) {
        bitmap.StreamSource = stream;
        bitmap.CacheOption = BitmapCacheOption.OnLoad;
        bitmap.EndInit();
        bitmap.Freeze();

    }
    this.Dispatcher.Invoke((Action)delegate {
        Image1.Source = bitmap;

    });

})).Start();


今天問題來了,當(dāng)我設(shè)置了DecodeWidth為100時加載1000張圖片,照理說內(nèi)存應(yīng)該維持100×100的1000張圖片,但事實(shí)上他保留了所以原始圖片的內(nèi)存直到BitmapImage被回收時才釋放,這讓我很尷尬,換句話說using(MemoryStream)并沒有真正按我們預(yù)期釋放MemoryStream中的Buffer,那如何才能釋放呢?
其實(shí)最簡單就是直接棄用MemoryStream轉(zhuǎn)投FileStream,如下:
復(fù)制代碼 代碼如下:

using (var stream = new FileStream(path, FileMode.Open)) {
    image.BeginInit();
    image.StreamSource = stream;

    image.DecodePixelWidth = 100;

    image.CacheOption = BitmapCacheOption.OnLoad;
    image.EndInit();
    image.Freeze();
}


相關(guān)文章

  • .NET9中Swagger平替Scalar使用詳解

    .NET9中Swagger平替Scalar使用詳解

    本文詳細(xì)介紹了Swagger中常用功能在Scalar中的使用,包括版本說明、接口分類、接口及參數(shù)描述、枚舉類型、文件上傳和JWT認(rèn)證等,并提供相關(guān)代碼示例和效果展示,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Net Core全局配置讀取管理方法ConfigurationManager

    Net Core全局配置讀取管理方法ConfigurationManager

    這篇文章主要為大家詳細(xì)介紹了Net Core全局配置讀取管理方法ConfigurationManager的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • asp.net中IDataParameter調(diào)用存儲過程的實(shí)現(xiàn)方法

    asp.net中IDataParameter調(diào)用存儲過程的實(shí)現(xiàn)方法

    這篇文章主要介紹了asp.net中IDataParameter調(diào)用存儲過程的實(shí)現(xiàn)方法,在asp.net數(shù)據(jù)庫程序設(shè)計(jì)中非常具有實(shí)用價值,需要的朋友可以參考下
    2014-09-09
  • 生成代碼從T到T1、T2、Tn自動生成多個類型的泛型實(shí)例代碼

    生成代碼從T到T1、T2、Tn自動生成多個類型的泛型實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于生成代碼從T到T1、T2、Tn自動生成多個類型的泛型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧
    2018-09-09
  • asp.net實(shí)現(xiàn)調(diào)用存儲過程并帶返回值的方法

    asp.net實(shí)現(xiàn)調(diào)用存儲過程并帶返回值的方法

    這篇文章主要介紹了asp.net實(shí)現(xiàn)調(diào)用存儲過程并帶返回值的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了asp.net存儲過程調(diào)用的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • .NET下模擬數(shù)組越界的方法詳解

    .NET下模擬數(shù)組越界的方法詳解

    這篇文章主要給大家介紹了關(guān)于.NET下模擬數(shù)組越界的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • ASP.NET Web應(yīng)用程序出現(xiàn)Maximum request length exceeded報錯的解決方法

    ASP.NET Web應(yīng)用程序出現(xiàn)Maximum request length 

    ASP.NET Web應(yīng)用中導(dǎo)出數(shù)據(jù)時出現(xiàn)500-Internal Server Error,原因是客戶端請求長度超過了服務(wù)器配置的最大限制,解決方法在web.config增加maxRequestLength屬性,單位為字節(jié)(Byte),本文介紹ASP.NET Web應(yīng)用程序出現(xiàn)Maximum request length exceeded報錯的原因,一起看看吧
    2024-12-12
  • Asp.net中將Word文件轉(zhuǎn)換成HTML的方法

    Asp.net中將Word文件轉(zhuǎn)換成HTML的方法

    這篇文章主要介紹了Asp.net中將Word文件轉(zhuǎn)換成HTML的方法,需要的朋友可以參考下
    2014-08-08
  • asp.net core集成MongoDB的完整步驟

    asp.net core集成MongoDB的完整步驟

    前兩天在學(xué)習(xí)MongoDB相關(guān)的知識,做了個小Demo,下面這篇文章主要給大家介紹了關(guān)于asp.net core集成MongoDB的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10
  • ASP.NET MVC4 HtmlHelper擴(kuò)展類,實(shí)現(xiàn)分頁功能

    ASP.NET MVC4 HtmlHelper擴(kuò)展類,實(shí)現(xiàn)分頁功能

    本文主要做了一個HtmHelper類的分頁擴(kuò)展函數(shù),方便在視圖中調(diào)用,有需要的朋友可以參考一下,希望對大家有所幫助。
    2016-03-03

最新評論

曲松县| 邓州市| 辉县市| 嘉禾县| 东光县| 丰镇市| 科尔| 永新县| 宿迁市| 怀柔区| 乌拉特后旗| 清原| 军事| 宜宾市| 赣榆县| 巴彦县| 抚宁县| 利川市| 绥化市| 神木县| 武鸣县| 镶黄旗| 孝昌县| 阿克陶县| 任丘市| 朝阳县| 全南县| 聂拉木县| 三穗县| 阜宁县| 嘉善县| 伊川县| 得荣县| 师宗县| 闻喜县| 区。| 泰兴市| 焦作市| 安陆市| 渝北区| 梁河县|