Tengo un ListBox con un montón de imágenes (hecho a través de una plantilla de datos). Las imágenes se crean mediante el establecimiento de la fuente artículos:Eliminar imagen en WPF en Listbox (pérdida de memoria)
<Image x:Name="ItemImage" Source="{Binding ImageUrl}"/>
y luego se borran utilizando el método del cuadro de lista Items.Clear(). Las nuevas imágenes se agregan usando el método Items.Add del listbox.
Sin embargo, el uso de la memoria solo comienza a subir y hacia arriba y hacia arriba. Son las mismas 300 imágenes pequeñas que se muestran, pero la memoria nunca parece liberarse. La aplicación comienza a usar aproximadamente 40 Megas, y sube rápidamente a 700 Megas. ¿Cómo puedo liberar la memoria que están usando todas estas imágenes?
EDIT: Una cosa que olvidé mencionar, las imágenes (que son de aproximadamente 4-5k cada una en tamaño) se cargan a través de la red. ¿El almacenamiento en caché de alguna manera es responsable de esto? La visualización de 12 imágenes mastica aproximadamente 10 Megas de memoria, que tiene un tamaño de archivo de aproximadamente 100X.
O mejor aún: utilice la miniatura incrustada si existe, por lo que ni siquiera necesita leer el archivo completo y cambiar su tamaño ... Lookup BitmapFrame.Thumbnail –
@xyzzer: Es bueno saberlo. –
El problema que vi es que a menudo vienen con marcos negros o blancos como parte de la miniatura, lo que no siempre se ve muy bien, supongo que es por eso que la mayoría de los navegadores de imágenes parecen construir sus propias tiendas de miniaturas. –