如何处理跨线程访问异常?

如何处理跨线程访问异常?

在使用WPF中的多个线程时,一个常见的异常是:

调用线程无法访问此对象,因为其他线程拥有该对象。

如何正确处理这一问题?


RISEBY
浏览 731回答 3
3回答

紫衣仙女

这将是几百行代码,对于我“弄明白”的东西。但总结如下:APP_OnStartup生成一个后台线程在回调中,打电话Application.Current.MainWindow.Dispatcher.CheckAccess()-获取异常应用程序.Current.Dispatcher.CheckAccess()不

largeQ

我有一个UDP侦听器对象,它通过主Window WPF.cs文件中的方法/回调为+=‘的事件进行通信。使用参数调用事件处理程序函数,其中一个是我希望显示在mainWindow.cs中的列表框中的消息使用上面H.B.在这个线程中的信息;我使用以下代码在WPF中添加、测试和处理了WPF中的十字线程,但我使用的是真正的消息,而不是硬编码的消息:listBox1.Dispatcher.Invoke(new Action(() => listBox1.Items.Add("MessageHere")));最新情况:这样做更好,因为您可以在匿名函数中添加更多内容。 listBox1.Dispatcher.Invoke((Action)delegate   {      listBox1.Items.Add(e.ReaderMessage);   });
打开App,查看更多内容
随时随地看视频慕课网APP