WPFTextBlock使用字体时内存泄漏我在Windows7上使用.NET4.5,可能会发现内存泄漏。我有一个TextBlock(不是TextBox-这不是撤消问题)每秒更改它的值(CPU使用率、时间等)。使用.NETMemoryProfiler(通过简单地观察任务管理器)我注意到内存不断增长。更准确地说,我看到越来越多的UnmanagedMemoryStream活动实例(我尝试了GC.Collect(),但显然什么也没做)。经过一些测试,我发现只有当我将TextBlock字体设置为资源字体时才会出现问题,如下所示:我尝试直接从代码或通过绑定更新Text属性,并且两种方式的行为相同。底线:设置FontFamily后,每次我更新文本时,UnmanagedMemoryStream实例都会(永远)继续。当我不(设置FontFamily属性)时,内存是稳定的。(顺便说一句,当我使用Label而不是TextBlock时会发生这种情况)它看起来像是内存泄漏,但我找不到任何对它的引用。对于如何解决这个问题,有任何的建议吗?如果FontFamily是从嵌入式资源或相对路径中获取的,则在使用时会泄漏UnmanagedMemoryStreams。当FontFamily来自系统字体或绝对路径时,它不会泄漏。您可以在此处查看和下载重现该问题的项目。解决方法:对于资源字体:将字体保存到临时文件夹并使用存储字体的绝对路径。对于相对路径字体:解析并改用绝对路径。以上就是C#学习教程:WPFTextBlockmemoryleakwhenusingFont的全部内容。侵权请点击右侧联系管理员删除。如需转载请注明出处:
