我想在窗口手机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
。但记忆不会恢复原状。
请帮帮我!
答案 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()