WPF 调用线程无法访问此对象,因为另一个线程拥有该对象。

错误提示:

 

为了在ListBox上显示某条信息,而调用线程,(这是我直接把Winform那儿的粘贴过来的)

可见WPF不同于Winform,线程调用时,需要增加必要线程调用语句

 

出错原因:

多线程之间,主线程的控制等等是被保护的。画面中的控件,若是由其他线程来控制,则应该调用委托。

 

解决方法:

创建一个临时的方法,也就是说,在ListBox的Items增加语句的外边套一层壳,来实现线程的调用。

 

代码如下:

Action action1 = () =>
            {
                 recvListBox.Items.Add(strMsg);
            };
recvListBox.Dispatcher.BeginInvoke(action1);

this.Invoke(new Action(() =>
{

recvListBox.Items.Add(strMsg);

}));

 

 

posted @ 2020-08-17 13:30  llkj  阅读(1148)  评论(0编辑  收藏  举报