Necesito cargar grandes cantidades de mapas de bits en la memoria para visualizarlos en una aplicación WPF (usando .net 4.0). Donde me encuentro con problemas es cuando me acerco a unos 1.400 MB de memoria (lo obtengo de la lista de procesos en el administrador de tareas).WPF excepción de memoria insuficiente cuando se carga una gran cantidad de mapas de bits en una sola instancia de la aplicación. ¿Hay un límite?
Lo mismo sucede si la aplicación se ejecuta en una máquina con 4 GB de memoria o 6 GB (y algunas otras configuraciones que no tengo los detalles). Es fácil de probar al reducir las imágenes cargadas y cuando funciona en 1 máquina, entonces funciona en todas ellas, pero cuando falla en una, también lo hace en todas.
Cuando reduzco el conteo de imágenes y dejo que la aplicación se cargue sin causar la excepción de memoria, puedo ejecutar varias instancias de la aplicación (superando los 1.4 GB de la instancia única) sin el problema, por lo que parece ser una instancia límite o error por instancia de mi parte.
me carga las imágenes como un BitmapImage y se almacenan ya sea en un List<BitmapImage>
o cargado en un List<byte[]>
donde son posteriormente utilizados en un grupo de secuencias de capas (utilizando un Writeablebitmap
) occurrs
El error cuando cargo las imágenes no están en uso. En el caso repetible, cargo 600 imágenes 640X640 más otras 200-300 imágenes más pequeñas que van de 100X100 a 200X200, aunque parece ser un conteo general de bits el problema.
Así que mis preguntas son:
* ¿Hay algunas de ellas construidas en tanto por límite de memoria de proceso en una situación como esta?
* ¿Existe una mejor técnica para cargar grandes cantidades de datos de imagen en la memoria?
Gracias, Brian
¿Está ejecutando una aplicación de 32 o 64 bits y qué sistema operativo? –
Estoy ejecutando Windows 7 de 64 bits y compilando para 'x86' - Nota Anteriormente puse 'cualquier CPU' pero x86 es el formato de compilación – Brian