Silverlight 如何编写不带';t漏存储器
我刚刚用ANTS Memory Profiler(棒极了!)调查了一些Silverlight控件,发现我的一些控件仍保留在内存中。解决方法是在控件“卸载”时将模板和内容值重置为null,并清除我在代码中完成的所有绑定 这是处理Silverlight自定义控件的正常模式吗?我过去是否没有正确地做到这一点 是否有人知道一个范例,例如,使用整洁清理编写Silverlight控件的模式Silverlight 如何编写不带';t漏存储器,silverlight,silverlight-4.0,Silverlight,Silverlight 4.0,我刚刚用ANTS Memory Profiler(棒极了!)调查了一些Silverlight控件,发现我的一些控件仍保留在内存中。解决方法是在控件“卸载”时将模板和内容值重置为null,并清除我在代码中完成的所有绑定 这是处理Silverlight自定义控件的正常模式吗?我过去是否没有正确地做到这一点 是否有人知道一个范例,例如,使用整洁清理编写Silverlight控件的模式 附录我已经对此进行了进一步研究,发现当DataContext设置为null时,与DataContext的绑定将被删除。
附录我已经对此进行了进一步研究,发现当DataContext设置为null时,与DataContext的绑定将被删除。似乎正确的过程是在加载的事件中设置任何Datacontext值,在卸载的事件中将其设置为null。对于编写Silverlight模板控件的范例,我仍然存在一个基本问题,因为我无法强制销毁ContentControls(请参阅我的问题:) MS发布了包含内存泄漏修复程序的Silverlight 4 GDR3 我不确定这是否修复了您的情况,但值得下载最新的SL版本并再次测试
你知道泄漏的地方吗?它是在您的代码中还是在MS代码中
下面是一篇关于SL中泄漏检测的好文章:我的问题似乎与我想要重新加载控件的愿望有关。我在这里再次更详细地问了这个问题:我们能看一些示例代码吗?是否有任何带有附加事件的控件/视图模型。如果是这样,当不再需要时,它们是否正确分离?谢谢。我还没有弄清事情的真相。当我有更多的信息时,我会在这里更新。