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.