日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

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

編輯Tag賺U幣

推薦:解析WPF綁定層次結(jié)構(gòu)數(shù)據(jù)的應(yīng)用詳解
本文講述WPF中單層次數(shù)據(jù)和多層次數(shù)據(jù)的綁定方法,主要闡述數(shù)據(jù)綁定的顯示層面,其中涉及了ListBox和Treeview控件。并說明它們之間的差異

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

復(fù)制代碼 代碼如下:www.hl5o.cn

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

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

image.DecodePixelWidth = 100;

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


分享:解析WPF實(shí)現(xiàn)音頻文件循環(huán)順序播放的解決方法
本篇文章是對(duì)WPF實(shí)現(xiàn)音頻文件循環(huán)順序播放的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2013-05-16
相關(guān).Net教程