2009-10-20 68 views
8

你應該如何處置BitmapSource?處理BitmapSource的正確方法

// this wont work because BitmapSource doesnt implement IDisposable 
using(BitmapSource bitmap = new BitmapImage(new Uri("myimage.png"))) 
{ 
} 
+0

[相關](https://stackoverflow.com/questions/8352787/how-to-free-the-memory-after-the-bitmapimage-is-no-longer-needed) – Goufalite

回答

11

您不必Dispose()a BitmapSource。與框架中的一些其他「圖像」類不同,它不包裝任何本地資源。

只要讓它超出範圍,垃圾收集器就會釋放它的內存。

+0

好的。我的同事提到WPF完全加速並且圖像等存儲在視頻中。這只是一個幻想嗎?我是一個很長時間的winforms程序員,現在正在WPF中編寫一個新模塊,所以我認爲我需要處理圖像。 –

+1

BitmapSource不是圖像 - 它用於生成一個。但是,它是一種託管像素存儲介質。有點令人困惑,但它總是值得檢查。一般來說,只要看看類層次結構 - 如果它沒有實現IDisposable,那麼你可以自由地讓GC擔心而不是你。 :) –

+0

除外,如果它是一個WritableBitmap。 –