说道跨线程就不得不提委托,委托在C#中非常重要。今天的办法也是通过委托实现,不过却是对跨线程访问控件这类操作做了个简单处理,方便以后使用这个方法访问控件。
这个方法会自动判断是不是跨线程访问控件,即使不是也能正常执行,一举两得。
方法代码:
先声明委托
复制
public delegate void SetText(Control tb, string str);
复制
private void SetAppendTB(Control tb, string str) { if (tb.InvokeRequired)//判断是不是跨线程 true是 false不是 { SetText setText = new SetText(SetAppendTB);//实例化委托对象 Invoke(setText, new object[] { tb, str });//线程传递 } else { tb.Text = str;//赋值操作 可自行替换 } }
代码很简单,逻辑很清楚,上面的代码出现了自己调用自己,只有一次,相信大家能看得懂,
评论 (0)