【发布时间】:2012-03-28 23:46:30
【问题描述】:
我在市场上有很多应用程序,到目前为止,通过更改我的功能或加倍努力,我已经能够解决无法在后台将 jpg 解码为 WriteableBitmap 的问题。
我发现一种情况,我想不出“解决”问题的好方法。我需要对从 MediaLibrary 获得的图像进行解码,将其分辨率降低到可管理的值 (800x800),进行潜在的旋转并保存到本地存储。到目前为止,花费最多时间 (80%) 的事情是将位图解码为 800x800 - 它需要 700 毫秒到 1000 毫秒。用户在开始时可能会添加 7-10 张图片,这意味着等待添加图片的时间约为 10 秒。
我尝试懒惰地这样做,但在某些时候你需要支付吹笛者的费用,而此时应用程序基本上会卡顿约 1000 毫秒,而且体验不是很好。
是否有其他方法可以在后台以某种方式加载图像?
(请注意为什么 CreateOptions.BackgroundCreation 对我没有好处:它将图像加载到 BitmapImage 中,如果您只想使用它,这很好,但对于我需要做的事情,即在独立存储)。
【问题讨论】:
-
您只是想将工作转移到后台线程吗?
-
是的 - 希望能够在后台线程上解码 JPG(像 PictureDecoder.DecodeJpeg(stream, width, height) 那样)。
标签: c# multithreading windows-phone-7 jpeg ui-thread