Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight工具箱图表组件中可能存在内存泄漏-帮助!_C#_Silverlight_Memory Leaks_Charts - Fatal编程技术网

C# Silverlight工具箱图表组件中可能存在内存泄漏-帮助!

C# Silverlight工具箱图表组件中可能存在内存泄漏-帮助!,c#,silverlight,memory-leaks,charts,C#,Silverlight,Memory Leaks,Charts,背景: 我在一个监控应用程序中使用了2009年11月发布的Silverlight Toolkit图表组件,该应用程序每隔10秒左右更新多个折线图 每个图表都绑定到一个ObservableCollection。DataValuePair是只包含两个属性(DateTime和int)的简单类。每次向集合添加DataValuePair时,都会删除经过某个时间点的项(即每个集合中始终有

背景:

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

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

问题:

记忆一直在增长。在WinDbg中,我可以看到DataValuePair对象(甚至是从ObservableCollections中删除的对象)仍然在堆中,并且被图表组件的某些元素引用

在我的应用程序代码中没有对对象的其他引用,并且通过.Remove(项)将对象从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的模板设置器


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

要调查您的内存使用问题,您可以使用ANTS内存分析器。
我认为它比WinDbg更有用,它显示了每种类型的实例数,并显示了类之间的一些关系图。我指的是它们的连接方式。

我想没有人对此有任何更新??