银光5中奇怪的内存泄漏

时间:2012-06-04 16:48:17

标签: silverlight memory memory-leaks

我的Silverlight应用程序遇到了一些问题。

我的应用程序看起来像图像管理器。您可以打开一些图像,编辑,查看等。

我的问题是,当您添加一些图像并删除这些图像后,内存不会返回到添加这些图像之前使用的相同数量。如果重复这些操作(添加图像并在删除这些图像后),内存不会停止上升。

为什么会这样?

我创建了一个新的silverlight 5项目,用于重新创建此场景,测试一些代码并尝试查找正在发生的事情。

在新项目中,我有一个StackPanel和3个按钮,包含以下操作:

1-在StackPanel中添加1000个按钮;

2-删除StackPanel的所有子项;

3-调用GC.Collect;

我反复调用相同的动作:添加(1),删除(2),调用GC(3)

我重复几次相同的动作(添加和删除)。我观察到了我的第一个应用程序的相同结果,内存不会停止上升。即使在我调用GC.Collect之后,内存也没有被释放。我现在不知道发生了什么。它是否可能是Silverlight的内存泄漏?

1 个答案:

答案 0 :(得分:0)

你的电脑是'桌子'吗?

如果您的计算机上运行自动化客户端,Silverlight自动化就会启动。最常见的是:

  • 平板电脑输入服务(换句话说,所有'平板电脑就像'个人电脑)
  • 自动化测试工具
  • 屏幕阅读器(和其他可访问性软件)

这使得Silverlight完全混乱并导致许多错误,并且几乎总是让一切都像疯了一样泄漏。

我通过在html中设置此参数来禁用自动化:

<param name="windowless" value="true" />

您可以在此处阅读更多内容:Silverlight + MVVM + Bindings = Memory leaks?