2012-12-17 28 views
1

我想调用PictureDecoder.DecodeJpeg()来解码图像流,但似乎必须在主UI线程中调用它,否则会引发“无效的跨线程访问”。例外。为什么要在主UI线程中调用PictureDecoder.DecodeJpeg()?

Stream imageStream = serivce.GetPicture(); 
WriteableBitmap bitmap = PictureDecoder.DecodeJpeg(imageStream); 
... 

我必须把它作为下方移动到调度身体,在这里我觉得有参与我的代码没有UI控件,这是为什么呢?

Deployment.Current.Dispatcher.BeginInvoke(() => 
{ 
    Stream imageStream = serivce.GetPicture(); 
    WriteableBitmap bitmap = PictureDecoder.DecodeJpeg(imageStream); 
    ... 
}); 
+0

尝试使用threadStart并写入返回WriteableBitmap的方法 – Prasad

+0

引发异常的行是什么? –

回答

1

差不多都是用的图像连接应UI线程,因为DispatcherObject类层次结构来实现。这是Silverlight框架设计的一个问题。可能人们没有时间正确移植WPF。

相关问题