我想调用PictureDecoder.DecodeJpeg()来解码图像流,但似乎我必须在主UI线程中调用它,否则它将引发一个"无效的跨线程访问。"异常。
Stream imageStream = serivce.GetPicture();
WriteableBitmap bitmap = PictureDecoder.DecodeJpeg(imageStream);
...
我必须将它移动到Dispatcher主体,如下所示,在这里我认为我的代码中没有涉及UI控件,这是为什么?
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
Stream imageStream = serivce.GetPicture();
WriteableBitmap bitmap = PictureDecoder.DecodeJpeg(imageStream);
...
});
答案 0 :(得分:0)
由于类层次结构中的DispatcherObject
,几乎所有与图像相关的内容都应该在UI线程中完成。这是Silverlight框架设计的一个问题。可能人们没有时间正确移植WPF。