2009-10-20 17 views
8

¿Cómo se supone que debe deshacerse de un BitmapSource?Forma correcta de desechar un BitmapSource

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

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

Respuesta

11

No es necesario desechar() a BitmapSource. A diferencia de otras clases de "imágenes" en el Marco, no envuelve ningún recurso nativo.

Simplemente déjalo fuera de alcance, y el recolector de basura liberará su memoria.

+0

ok. Mis colegas mencionaron que WPF está completamente acelerado por dx y que las imágenes, etc. se almacenan en video. ¿Es esto solo una fantasía? Soy un programador de winforms desde hace mucho tiempo y ahora estoy escribiendo un nuevo módulo en WPF, así que asumí que necesitaba deshacerme de las imágenes. –

+1

Un BitmapSource no es una imagen, se usa para generar uno. Sin embargo, es un medio de almacenamiento de píxel administrado. Es un poco confuso, pero siempre vale la pena verificarlo. En general, solo mire la jerarquía de clases: si no implementa IDisposable, puede dejar que el GC se preocupe en lugar de usted. :) –

+0

Excepto que sí, si es un WritableBitmap. –

Cuestiones relacionadas