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
Silverlight 如何编写不带';t漏存储器_Silverlight_Silverlight 4.0 - Fatal编程技术网

Silverlight 如何编写不带';t漏存储器

Silverlight 如何编写不带';t漏存储器,silverlight,silverlight-4.0,Silverlight,Silverlight 4.0,我刚刚用ANTS Memory Profiler(棒极了!)调查了一些Silverlight控件,发现我的一些控件仍保留在内存中。解决方法是在控件“卸载”时将模板和内容值重置为null,并清除我在代码中完成的所有绑定 这是处理Silverlight自定义控件的正常模式吗?我过去是否没有正确地做到这一点 是否有人知道一个范例,例如,使用整洁清理编写Silverlight控件的模式 附录我已经对此进行了进一步研究,发现当DataContext设置为null时,与DataContext的绑定将被删除。

我刚刚用ANTS Memory Profiler(棒极了!)调查了一些Silverlight控件,发现我的一些控件仍保留在内存中。解决方法是在控件“卸载”时将模板和内容值重置为null,并清除我在代码中完成的所有绑定

这是处理Silverlight自定义控件的正常模式吗?我过去是否没有正确地做到这一点

是否有人知道一个范例,例如,使用整洁清理编写Silverlight控件的模式


附录我已经对此进行了进一步研究,发现当DataContext设置为null时,与DataContext的绑定将被删除。似乎正确的过程是在加载的事件中设置任何Datacontext值,在卸载的事件中将其设置为null。对于编写Silverlight模板控件的范例,我仍然存在一个基本问题,因为我无法强制销毁ContentControls(请参阅我的问题:)

MS发布了包含内存泄漏修复程序的Silverlight 4 GDR3 我不确定这是否修复了您的情况,但值得下载最新的SL版本并再次测试


你知道泄漏的地方吗?它是在您的代码中还是在MS代码中


下面是一篇关于SL中泄漏检测的好文章:

我的问题似乎与我想要重新加载控件的愿望有关。我在这里再次更详细地问了这个问题:

我们能看一些示例代码吗?是否有任何带有附加事件的控件/视图模型。如果是这样,当不再需要时,它们是否正确分离?谢谢。我还没有弄清事情的真相。当我有更多的信息时,我会在这里更新。