Sto cercando di capire come rilasciare una memoria WriteableBitmap.WPF WriteableBitmap Perdita di memoria?
Nella prossima sezione di codice riempio il backbuffer di un WriteableBitmap con una quantità molto grande di dati da "BigImage" (3600 * 4800 px, solo per il test) Se commento le linee in cui bitmap e immagine sono uguali a null, la memoria non è rilasciata e l'applicazione consuma ~ 230 MB, anche quando Immagine e bitmap non vengono più utilizzati!
Come è possibile vedere alla fine del codice è necessario chiamare GC.Collect() per rilasciare la memoria.
Quindi la domanda è, qual è il modo giusto per liberare la memoria utilizzata da un oggetto WriteableBitmap? GC.Collect() è l'unico modo?
Qualsiasi aiuto sarebbe fantastico.
PS. Scusa per il mio cattivo inglese.
private void buttonTest_Click(object sender, RoutedEventArgs e)
{
Image image = new Image();
image.Source = new BitmapImage(new Uri("BigImage"));
WriteableBitmap bitmap = new WriteableBitmap(
(BitmapSource)image.Source);
bitmap.Lock();
// Bitmap processing
bitmap.Unlock();
image = null;
bitmap = null;
GC.Collect();
}
http://stackoverflow.com/questions/1534983/how-to-dispose-a-writeable-bitmap-wpf/2422496#2422496 – nyxtom