WPF教程

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

时间:2013-7-23 22:22:36  作者:WPF之家  来源:http://www.wpf123.com  查看:1813  评论:0
内容摘要: 在WinForm中,我们要跨线程访问窗口控件,只需要设置属性CheckForIllegalCrossThreadCalls = false;即可。在WPF中要麻烦一下,同样的不允许跨线程访问,因为没有权限,访问了会抛异常;没有CheckForIllegalCrossT...

 

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

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

没有CheckForIllegalCrossThreadCalls 属性,怎么办?

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

方法如下:

 
privatedelegatevoid outputDelegate(string msg);

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

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

 

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

 


标签:窗口 控件 线程 调用 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。本文出自“wpf之家”,请务必保留此出处:http://www.wpf123.com

相关评论
Copyright © 2009-2014 WPF之家(http://www.wpf123.com/) All rights reserved
 Powered by WPF之家
鄂ICP备13006396号