在WP8中使用Streams的OutofMemoryException

时间:2015-02-11 14:29:14

标签: c# windows-phone-8 out-of-memory memorystream

我目前正在开发一款应用程序,它可以从隔离存储中加载和上传一些图片,也可以通过Streams从Web服务(RESTFul)上传。图片本身并不大(500kb - 每个流2MB)。但经过几次,总是不同的操作(例如显示或下载图片列表),我得到outOfMemory异常。 我也确定,在每种情况下,流都正确关闭。

using (MemoryTributary mem = new MemoryTributary(imageBytes))
                {
                    bitmapImage.SetSource(mem);
                    bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
                    mem.Close();
                }

在这个特殊情况下,我们还使用了可下载的类MemoryTributary,它应该能够比memoryStreams更好地处理大数据。
http://www.codeproject.com/Articles/348590/A-replacement-for-MemoryStream
不知怎的,我认为使用它们后,尽管Streams已关闭,但未释放使用过的资源。

1 个答案:

答案 0 :(得分:0)

好的,我们现在得到了它。 UriSource也必须设置为null。此外,XAML对象的Source必须在设置null后更新,否则它会看起来保留图片,即使Source设置为null。