Como você se certifica de que o WPF libera o BitmapSource da memória?

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

Eu tenho um aplicativo WPF que carrega e transições (usando animações Storyboard) extremamente grandes PNGs. Esses PNGs têm resolução de 8190x1080. À medida que o aplicativo é executado, ele exibe as imagens em cache e a memória do sistema se arrasta lentamente. Eventualmente, ele bloqueia o sistema e lança o OutOfMemoryException.

Aqui estão os passos que estou tomando atualmente para tentar resolver isso:

1) Estou removendo os objetos BitmapSource do aplicativo

2) Estou definindo o BitmapCache BitmapCacheOption para None quando eu carregar o BitmapSource

3) Estou congelando o BitmapSource assim que ele é carregado.

4) Estou excluindo todas as referências à imagem que usa a origem, bem como quaisquer referências à própria fonte.

5) Chamar manualmente o GC.Collect () após as etapas acima terem sido concluídas.

Na esperança de descobrir por que o WPF está pendurado na memória para essas imagens e uma possível solução para garantir que a memória usada para carregá-las seja recuperada adequadamente.

questionAnswers(1)

yourAnswerToTheQuestion