zoukankan      html  css  js  c++  java
  • 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方法就可以了。其它的处理同上!

    2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
    如果认为此文对您有帮助,别忘了支持一下哦!
    声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
  • 相关阅读:
    贝叶斯公式推导
    三种常量池
    SpringCloud使用Feign实现服务间通信
    springCloud配置本地配中心SpringCloudConfig
    SpringApplication执行流程
    调用shutdown.sh后出现could not contact localhost8005 tomcat may not be running报错问题
    TCP协议详解
    web.xml配置说明
    第一份offer
    博客CSS
  • 原文地址:https://www.cnblogs.com/youring2/p/2059718.html
Copyright © 2011-2022 走看看