我在窗口手机8.1的图片库上工作,用户可以像图书一样逐个查看图片。您可以在此处转动图像并查看其他图像。
现在,这个图库应用程序消耗了大量内存,并且在使用应用程序一段时间后我出现了内存异常。
我使用下面的代码将图片加载到usercontrol中。
StorageFile f1 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx://" + Physical path of application for getting image);
using (IRandomAccessStream stream1 = await f1.OpenAsync(FileAccessMode.Read))
{
bitmapImage1 = new BitmapImage();
await bitmapImage1.SetSourceAsync(stream1);
nextimg = bitmapImage1;
stream1.Dispose();
}
有人可以帮助指导内存消耗吗?
答案 0 :(得分:1)
首先,似乎有人已经问过类似的问题:Memory not being relieved when setting BitmapImage to null。
但是,我仍然搜索了一下,在这里找到了对问题的全面调查:Memory leak with BitmapImage。虽然值得一读,但本文中提供了一些解决方案。
将BitmapImage
的来源设为空流,或
将BitmapImage.UriSource
设为空,或
打开图片时(BitmapImage.ImageOpened
事件被提出),取消订阅BitmapImage.ImageOpened
和BitmapImage.ImageFailed
个活动。
顺便问一下,你为什么打电话给stream1.Dispose()
? using
语句暗示此调用。