婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于.NET BitmapImage 內存釋放問題的解決方法詳解

基于.NET BitmapImage 內存釋放問題的解決方法詳解

熱門標簽:智能電話營銷外呼系統 鄭州400電話辦理 聯通 電銷語音自動機器人 長春呼叫中心外呼系統哪家好 戶外地圖標注軟件手機哪個好用 凱立德導航官網地圖標注 萊蕪外呼電銷機器人價格 五常地圖標注 地圖標注和認領

網上查到的代碼,多數的寫法使用MemoryStream來實現:

復制代碼 代碼如下:

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();


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

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

    image.DecodePixelWidth = 100;

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


您可能感興趣的文章:
  • .Net Core內存回收模式及性能測試對比分析
  • asp.net中C#實現手動回收內存的方法
  • asp.net動態產生checkbox(數據源為DB或內存集合)
  • asp.net 獲取機器硬件信息(cpu頻率、磁盤可用空間、內存容量等)
  • .Net程序內存異常的原因及解決

標簽:福州 西寧 岳陽 湖州 衢州 西藏 紅河 宣城

巨人網絡通訊聲明:本文標題《基于.NET BitmapImage 內存釋放問題的解決方法詳解》,本文關鍵詞  基于,.NET,BitmapImage,內存,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于.NET BitmapImage 內存釋放問題的解決方法詳解》相關的同類信息!
  • 本頁收集關于基于.NET BitmapImage 內存釋放問題的解決方法詳解的相關信息資訊供網民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    主站蜘蛛池模板: 江口县| 十堰市| 富顺县| 平阳县| 河南省| 峨眉山市| 赞皇县| 南涧| 柳江县| 临猗县| 宣恩县| 富宁县| 基隆市| 根河市| 陵川县| 高台县| 沅陵县| 旌德县| 东乌珠穆沁旗| 抚顺市| 齐河县| 图片| 彭泽县| 丁青县| 涟源市| 绍兴市| 佛山市| 靖江市| 名山县| 赤壁市| 克拉玛依市| 平罗县| 曲麻莱县| 郴州市| 德钦县| 清水河县| 太保市| 锡林郭勒盟| 德钦县| 伽师县| 平阳县|