Silverlight:如何从内存中卸载(处置)图像?

我有一个图像控件,显示一个大的jpg文件,并占用大约50mb的内存。 如果不再需要此控件,该如何处理? 我尝试将其从父容器中删除,将其设置为null并将其Source属性转换为null,但内存使用情况仍保持不变…任何建议都将受到高度赞赏!

我终于找到了问题的答案。 问题出在Silverlight中的内存泄漏错误中。 我在这里找到了解决这个问题的方法: http : //blogs.msdn.com/silverlight_sdk/pages/silverlight-bugs-and-workarounds.aspx

动态添加和删除图像时内存泄漏

解决方法:从应用程序动态添加或删除BitmapImages(也就是从树中添加/删除)时,应在从树中删除Image元素之前设置Image.Source = null。 这将使BitmapImage符合垃圾回收的条件。 错误状态:活动错误。 *

谢谢大家的建议!

我认为这是Silverlight的一个边缘案例问题,因为它依赖于垃圾收集。 不幸的是,如果你要实例化很多对象(我的确意味着很多),那么你将获得性能降级(即使你正确地释放所有东西和/或Dispose()所有东西)因为GC不能跟上并且我们没有像在“普通”应用程序中那样抛出资源。

你有问题,还是看内存?