cs 界面多线程调用窗体控件

本文探讨了在CS界面中如何使用Invoke方法进行多线程操作,特别是处理线程安全地更新窗体控件的问题。由于Invoke接受Delegate类型的参数,编译器在处理匿名函数时可能会遇到转换困难,导致编译错误。文章提到了ThreadStart、MethodInvoker等委托类型,并指出在WPF和WinForms应用中按钮点击事件的处理方式。
摘要由CSDN通过智能技术生成

     public object Invoke(Delegate method)
也就说,它所接受的是一个Delegate,那么,任何一个派生自Delegate的实例,都是可被接受的。我们知道,类似ThreadStart,MethodInvoker都派生自Delegate,那么编译器在转化这个匿名函数的时候,就不知道要将这个匿名函数转为ThreadStart还是MethodInvoker,于是报错。(代表一个委托函数的,还有ParameterizedThreadStart、WaitCallback、AsyncCallback等,只不过他们都是带有参数的。)

以上描述是拷贝别人的; 详细 出自 http://hi.baidu.com/%C2%E4%CB%AE%C9%F1/blog/item/548f3edf8fe7eff577c638aa.html

 wpf 

  private void btn2_Click(object sender, RoutedEventArgs e)

        {
            Thread _t = new Thread(new ThreadStart(delegate() {
                this.Dispatcher.Invoke(new Action(()=> { 执行内容 }), null); 
            }));
            _t.Start();
           

        }

winfrom

  private void btn2_Click(object sender, RoutedEventArgs e)

        {
            Thread _t = new Thread(new ThreadStart(delegate() {
              this.Invoke(new MethodInvoker(()=>{执行代码}));
            }));
            _t.Start();
           

        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值