C#跨线程访问控件

2020-09-24  本文已影响0人  堆石成山

1、跨线程检查设置为false

Control.CheckForIllegalCrossThreadCalls = false;//是否捕获错误线程的调用

2、使用Invoke或者BeginInvoke方法, async关键字

this.Invoke(new Action(() =>
     {
         this.textBox1.text=msg;      
     }));

this.BeginInvoke(new Action(async () =>
     {
       this.textBox1.text=msg;
       await Task.Delay(1);
    }));

3、使用Invoke或者BeginInvoke方法的另一种表达,用法一样

  Action act = delegate (){ this.textBox1.text=msg; };
  this.BeginInvoke(act); 
上一篇下一篇

猜你喜欢

热点阅读