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);