清除窗口电话中的缓存7

时间:2011-08-15 08:09:31

标签: windows-phone-7

我想在窗口手机7中使用Dipose缓存。在我的项目中,我有下载图像,使用后我通过以下方式处理图像:

Image.source = null;
Image = null;

但内存不会恢复原状,例如:

下载后我设置了图像源:

img.source = new bitmapImage(new uri("http://diadiem.com/image/123.jpg"),UriKind.Relative);

当下一页或LoadPage再次:我想要清除项目旧项目,并在缓存中重新生成内存。 虽然我尝试设置image.source= null,然后设置控件Image = null。但记忆不会恢复原状。

请帮帮我!

2 个答案:

答案 0 :(得分:6)

要从缓存中删除下载的图像,您需要将其源分配给单独的BitmapImage,并在将图像的源设置为null之前将其设置为null。

BitmapImage bitmapImage = image.Source as BitmapImage;
bitmapImage.UriSource = null;
image.Source = null;

不要问我为什么,但它有效。

答案 1 :(得分:1)

您可以采取以下措施来强制系统始终从URL加载图像:

img.source = new bitmapImage(new uri("http://diadiem.com/image/123.jpg?random=" + randomvar)...

其中randomvar是一个随机变量,如GUID.NewGuid()