码迷,mamicode.com
首页 > 编程语言 > 详细

WPF中窗口控件的跨线程调用

时间:2018-09-21 10:56:21      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:text   没有   win   als   窗口   dispatch   方法   它的   tac   

原文:WPF中窗口控件的跨线程调用

在WinForm中,我们要跨线程访问窗口控件,只需要设置属性CheckForIllegalCrossThreadCalls = false;即可。

在WPF中要麻烦一下,同样的不允许跨线程访问,因为没有权限,访问了会抛异常;

没有CheckForIllegalCrossThreadCalls 属性,怎么办?

在WPF中的窗口控件都有一个Dispatcher属性,允许访问控件的线程;既然不允许直接访问,就告诉控件我们要干什么就好了。

方法如下:

private delegate void outputDelegate(string msg);

private void output(string msg)
{
this.txtMessage.Dispatcher.Invoke(new outputDelegate(outputAction), msg);
}

private void outputAction(string msg)
{
this.txtMessage.AppendText(msg);
this.txtMessage.AppendText("\n");
}

这里是要 输出一段字符串在TextBox中,只需要调用output方法就可以了。其它的处理同上!

WPF中窗口控件的跨线程调用

标签:text   没有   win   als   窗口   dispatch   方法   它的   tac   

原文地址:https://www.cnblogs.com/lonelyxmas/p/9684849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!