我的Silverlight应用程序遇到了一些问题。
我的应用程序看起来像图像管理器。您可以打开一些图像,编辑,查看等。
我的问题是,当您添加一些图像并删除这些图像后,内存不会返回到添加这些图像之前使用的相同数量。如果重复这些操作(添加图像并在删除这些图像后),内存不会停止上升。
为什么会这样?
我创建了一个新的silverlight 5项目,用于重新创建此场景,测试一些代码并尝试查找正在发生的事情。
在新项目中,我有一个StackPanel和3个按钮,包含以下操作:
1-在StackPanel中添加1000个按钮;
2-删除StackPanel的所有子项;
3-调用GC.Collect;
我反复调用相同的动作:添加(1),删除(2),调用GC(3)
我重复几次相同的动作(添加和删除)。我观察到了我的第一个应用程序的相同结果,内存不会停止上升。即使在我调用GC.Collect之后,内存也没有被释放。我现在不知道发生了什么。它是否可能是Silverlight的内存泄漏?
答案 0 :(得分:0)
你的电脑是'桌子'吗?
如果您的计算机上运行自动化客户端,Silverlight自动化就会启动。最常见的是:
这使得Silverlight完全混乱并导致许多错误,并且几乎总是让一切都像疯了一样泄漏。
我通过在html中设置此参数来禁用自动化:
<param name="windowless" value="true" />
您可以在此处阅读更多内容:Silverlight + MVVM + Bindings = Memory leaks?