WPF中窗口控件的跨线程调用
2012-06-18 15:55
671 查看
在WinForm中,我们要跨线程访问窗口控件,只需要设置属性CheckForIllegalCrossThreadCalls = false;即可。
在WPF中要麻烦一下,同样的不允许跨线程访问,因为没有权限,访问了会抛异常;
没有CheckForIllegalCrossThreadCalls 属性,怎么办?
在WPF中的窗口控件都有一个Dispatcher属性,允许访问控件的线程;既然不允许直接访问,就告诉控件我们要干什么就好了。
方法如下:
这里是要 输出一段字符串在TextBox中,只需要调用output方法就可以了。其它的处理同上!
在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中窗口控件的跨线程调用
- WPF中窗口控件的跨线程调用
- WPF中窗口控件的跨线程调用
- WPF中窗口控件的跨线程调用
- 多线程委托之跨线程问题分析--在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke(解决方法已更新)
- C# WinForm编程:跨线程调用UI窗口控件
- wpf 根据当前控件,查找父窗口,调用父窗口的方法
- VC 如何在线程里调用主窗口的控件。
- WPF/WinForm在线程中调用提示窗MessageBox阻塞窗口方法
- WinForm与WPF下跨线程调用控件
- c#在线程中调用窗口控件
- 直接调用带参数方法创建新线程及 wpf中跨线程访问控件
- c#在线程中调用窗口控件2(带参数)
- 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
- 如何跨越线程调用窗体上的控件
- 【WPF】控件使用-宽度自动适应窗口大小
- 浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题
- js和css重写Confirm提示窗口,支持服务器控件调用。
- WPF 调用线程无法访问此对象,因为另一个线程拥有该对象
- Wpf 调用线程无法访问此对象,因为另一个线程拥有该对象,解决方案