¿Cómo se asegura de que WPF libere un gran BitmapSource de la memoria?

Sistema: Windows XP SP3, .NET 3.5, 4GB RAM, doble 1.6gHz

Tengo una aplicación WPF que carga y hace transiciones (usando animaciones de Storyboard) PNG extremadamente grandes. Estos PNG tienen una resolución de 8190x1080. A medida que se ejecuta la aplicación, parece que las imágenes se almacenan en la caché y la memoria del sistema avanza lentamente. Con el tiempo, asfixia el sistema y lanza la excepción OutOfMemoryException.

Aquí están los pasos que estoy tomando actualmente para tratar de resolver esto:

1) Estoy eliminando los objetos BitmapSource de la aplicación

2) Estoy configurando BitmapSource BitmapCacheOption en Ninguno cuando cargo BitmapSource

3) Estoy congelando el BitmapSource una vez que está cargado.

4) Estoy eliminando todas las referencias a la imagen que utiliza la fuente, así como cualquier referencia a la fuente en sí.

5) Llamar manualmente a GC.Collect () después de que se hayan completado los pasos anteriores.

Con la esperanza de descubrir por qué WPF se queda en la memoria para estas imágenes y una posible solución para garantizar que la memoria utilizada para cargarlas se recupere correctamente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta