gpt4 book ai didi

c# - Silverlight Toolkit 图表组件中可能存在内存泄漏 - 求助!

转载 作者:行者123 更新时间:2023-11-30 16:33:29 24 4
gpt4 key购买 nike

背景:

我一直在监控应用程序中使用 2009 年 11 月发布的 Silverlight Toolkit 图表组件,每 10 秒左右更新多个折线图。

每个图表都绑定(bind)到一个 ObservableCollection。 DataValuePair 是只包含两个属性(DateTime 和 int)的简单类。每次向集合中添加 DataValuePair 时,都会删除经过特定时间点的项目(即每个集合中始终有 < 50 个 DataValuePair 对象)。

问题:

内存不断增加。在 WinDbg 中,我可以看到 DataValuePair 对象(即使是那些已从 ObservableCollections 中删除的对象)仍在堆中,并被图表组件的某些元素引用。

在我的应用程序代码中没有对这些对象的其他引用,并且这些对象通过 .Remove(item) 从 ObservableCollections 中移除。我假设这些将被 GC 删除。

谁能看出我哪里出错了,或者这是图表组件的问题吗?

干杯!克里斯

最佳答案

好的,经过两天的努力,我似乎​​已经解决了这个问题!

似乎内存泄漏是由 LineDataPoints 上的样式引起的,我已将其更改为:

<Style x:Key="SparklineDataPointStyle" TargetType="charting:LineDataPoint">
<Setter Property="Template" Value="{x:Null}" />
<Setter Property="Background" Value="LimeGreen" />
</Style>

为此:

<Style x:Key="SparklineDataPointStyle" TargetType="charting:LineDataPoint">
<Setter Property="Background" Value="LimeGreen" />
</Style>

即,删除之前设置为 null 的模板 setter 。

我不太清楚这是为什么,但我会调查。

关于c# - Silverlight Toolkit 图表组件中可能存在内存泄漏 - 求助!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com