错误:调用线程无法访问此对象,因为另一个线程拥有它这是代码:图像图像;位图图像BmpImg;内存流毫秒;publicvoidConvert(){ms=newMemoryStream();image.Save(ms,ImageFormat.Jpeg);BmpImg=newBitmapImage();BmpImg.BeginInit();BmpImg.StreamSource=newMemoryStream(ms.ToArray());BmpImg.EndInit();}privatevoidBtn_Click(objectsender,RoutedEventArgse){Dispatcher.Invoke(newAction(()=>{Image.Source=BmpImg;}));如何将System.Drawing.Image转换为BitmapImage并在wpf上显示?BmpImg是在后台线程上创建的。您不能绑定在UI线程以外的线程上创建的图像源DP对象。由于您使用的是Dispatcher,我现在假设您是如何在UI线程上委派内容的。因此,您需要做的就是通过Dispatcher在UI线程上创建BmpImg。您还可以获得这样的UI调度程序-App.Current.Dispatcher。或者正如@Clemens在评论中建议的那样,如果您在BitmapImage实例上调用Freeze(),则可以跨线程访问它。以上是C#学习教程:错误:调用线程无法访问这个对象,因为另一个线程拥有它共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——BmpImg.Freeze()本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
