我有一个Windows Phone 8应用程序,它使用后台代理:
但是,当它在后台运行时,它会得到OutOfMemoryException一些故障排除:
OutOfMemoryException在期间抛出var bmp = new WriteableBitmap(480, 800);我试过DeviceStatus.ApplicationCurrentMemoryUsage用来跟踪内存使用情况:
- 限制是11,534,336(位)
- 当后台代理启动时,即使没有任何任务,内存使用量也变为4,648,960
- 从互联网获得更新时,它增长到5,079,040
- 完成后,它回落到4,648,960
- 当调用开始时(从用户控件生成图像),它增长到8,499,200
嗯,我想这就是问题所在,它几乎没有可用于渲染图像的内存WriteableBitmap.
知道如何解决这个问题吗?
有没有更好的方法从用户控件/或其他任何东西生成图像?
实际上原始图像可能只有100 kb左右,但是,在渲染时WriteableBitmap,文件大小(以及我猜想的所需内存大小)可能会增长到1-2MB.
或者我可以从任何地方释放内存吗?
================================================== ============
顺便说一下,当这个Code Project文章说我在周期性任务中只能使用11MB内存时;
但是,这篇MSDN文章说我可以使用Windows Phone 8 Update 3最多20 MB或25 MB; 哪个是对的?为什么我处于第一种情况?
================================================== ============
编辑:
说到调试器,它在MSDN文章中也有说明:
When running under the debugger, memory and timeout restrictions …