我正在使用Windows 7上的.NET 4.5,并可能遇到内存泄漏问题。
我有一个TextBlock
(不是TextBox
- 这不是撤消问题),它每秒更改其值(CPU使用率,时间等)。
使用.NET内存分析器
(以及简单地观察任务管理器),我注意到内存不断增长。 更准确地说,我看到越来越多的UnmanagedMemoryStream
实例(我尝试了GC.Collect()
,但显然没有任何作用)。
经过一些测试,我发现只有当我将TextBlock
字体设置为资源字体时,这个问题才会出现:
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Control.Foreground" Value="#CCCCCC"/>
<Setter Property="FontFamily" Value="pack://application:,,,/MyUIControls;component/./Fonts/#Noto Sans"/>
</Style>
我尝试直接从代码或通过绑定更新
底线是:
当设置时,每次更新文本时都会出现实例(永远)。当我不设置属性时,内存稳定。
(顺便说一下,当我使用
看起来像是内存泄漏,但我找不到任何相关的参考。
有什么建议可以解决吗?
<FontFamily x:Key="AppFont">pack://application:,,,/MyUIControls;component/./Fonts/#Noto Sans</FontFamily>
然后使用<Setter Property="FontFamily" Value="{StaticResource AppFont}" />
. - Endrju