c#winform多线程调用窗体控件,如果直接调用会提示 “线程间操作无效,从不是创建控件的线程访问。”,这个时候要用到委托,下面是一个写的非常好的委托函数:
定义委托
delegate void SetTextCallBack(string text);
定义委托函数
private void ShowRes(string data)
{
if (tvInfo.InvokeRequired) //当有新工作进程访问控件时InvokeRequired为True
{
this.Invoke(new SetTextCallBack(ShowRes), new object[1] { data }); // 定义委托对象,用当前工作进程对控件进行访问
}
else
{
tvInfo.Text += data + "\r\n";
}
}
信息网址:http://www.khcha.com/ziyuan/view20207.htm