系统:Windows XP SP3、.NET 3.5、4GB RAM、双 1.6GHz
我有一个 WPF 应用程序,它加载和转换(使用情节提要动画)非常大的 PNG。这些 PNG 的分辨率为 8190x1080。当应用程序运行时,它似乎会缓存图像,并且系统内存会慢慢增加。最终它阻塞了系统并抛出 OutOfMemoryException。
以下是我目前尝试解决此问题的步骤:
1)我正在从应用程序中删除 BitmapSource 对象
2)我在加载 BitmapSource 时将 BitmapSource BitmapCacheOption 设置为 None
3)一旦加载,我将冻结 BitmapSource。
4)我正在删除对使用源的图像的所有引用以及对源本身的任何引用。
5) 完成上述步骤后手动调用 GC.Collect()。
希望弄清楚为什么 WPF 会为这些图像挂在内存上,以及一个可能的解决方案,以确保正确恢复用于加载它们的内存。