在应用程序中,我创建了一个FixedDocument作为我的打印预览。只要用户通过创建新的FixedDocument并替换文档查看器使用的旧数据来更改某些数据,就会刷新此预览。
问题是:FixedDocument包含很多资源,其中一些是Image类型的资源,是从资源中的ImageSources创建的。
该程序正在耗尽内存,很快就会用完GDI句柄。
我的问题:如何处理FixedDocument以便正确处理所有内容?
答案 0 :(得分:2)
这是有同样问题的人: http://social.msdn.microsoft.com/Forums/en/wpf/thread/f5216805-5730-4be2-82fa-8a7e7757dd19
也许有帮助?
发现另一篇有趣的文章: http://blogs.msdn.com/b/jgoldb/archive/2008/02/04/finding-memory-leaks-in-wpf-based-applications.aspx
我使用
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
将新的FixedDocument附加到DocumentViewer后的模式。所以对我来说,内存使用量并没有增长太多。但这是一个丑陋的解决方法。
看一下文章的“位图”部分,也许它适用于你?