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

错误提示:

WPF 调用线程无法访问此对象,因为另一个线程拥有该对象。_第1张图片

 

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

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

 

出错原因:

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

 

解决方法:

将ListBox的Items增加语句在外边套一层壳,来实现线程的调用。

 

WPF 调用线程无法访问此对象,因为另一个线程拥有该对象。_第2张图片

代码如下:

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

 

你可能感兴趣的:(WPF 调用线程无法访问此对象,因为另一个线程拥有该对象。)