Система: Windows XP SP3,.NET 3.5, 4 ГБ оперативной памяти, Dual 1,6 гц
У меня есть приложение WPF, которое загружает и переводит (используя анимацию Storyboard) чрезвычайно большие PNG. Эти PNG имеют разрешение 8190x1080. По мере запуска приложения он, похоже, кэширует изображения, и системная память медленно ползет вверх. В конце концов он дросселирует систему и выбрасывает исключение OutOfMemoryException.
Вот шаги, которые я сейчас предпринимаю, чтобы решить эту проблему:
1) Я удаляю объекты BitmapSource из приложения
2) Я устанавливаю BitmapSource BitmapCacheOption в None при загрузке BitmapSource
3) Я замерзаю BitmapSource после его загрузки.
4) Я удаляю все ссылки на изображение, которое использует источник, а также любые ссылки на сам источник.
5) Вручную вызовите GC.Collect() после завершения вышеуказанных шагов.
В надежде выяснить, почему WPF висит на памяти для этих изображений и возможное решение для того, чтобы память, используемая для их загрузки, была правильно восстановлена.