2015-02-11 60 views
0

我目前工作的一个应用程序,它会加载,并从独立存储和通过流的web服务(基于REST)上传了几张照片。图片本身并不那么大(每个流500kb - 2MB)。但经过几次,总是不同的操作量(例如显示或下载图片列表),我得到了outOfMemory异常。 我也确信,在任何情况下,流都被正确关闭。OutOfMemoryException异常与流在WP8

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
不知怎的,我认为所使用的资源并未被释放,虽然流是封闭的,使用后。

+0

它大概与BitmapImage的处理问题。退房http://stackoverflow.com/questions/18127027/memory-consumption-of-bitmapimage-image-control-in-windows-phone-8 – 2015-02-11 14:33:36

+0

感谢您的快速答复。我们现在尝试使用该给定的方法尝试,并将所有其他对象设置为null。然后我们使用Collect。还是同样的问题... – Anon 2015-02-12 10:08:25

+0

你绝对应该做一个内存分析,并分享results.https://msdn.microsoft.com/en-us/library/windows/apps/jj215908(V = vs.105)。 ASPX – 2015-02-12 10:17:46

回答

0

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

相关问题