为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

RISEBY 2019-07-09 15:28:42
如何处理跨线程访问异常?在使用WPF中的多个线程时,一个常见的异常是:调用线程无法访问此对象,因为其他线程拥有该对象。如何正确处理这一问题?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这将是几百行代码,对于我“弄明白”的东西。

但总结如下:

APP_OnStartup生成一个后台线程

在回调中,

打电话

Application.Current.MainWindow.Dispatcher.CheckAccess()-获取异常应用程序.Current.Dispatcher.CheckAccess()不


查看完整回答
反对 回复 2019-07-09
?
largeQ

TA贡献2039条经验 获得超7个赞

我有一个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); 
 });


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 731 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信