
群里的一个朋友问到了这个问题,就是在.net线程中操作主窗体控件,要报线程出错,其实这是.net为了安全,所以不充许直接在线程中操作主线程。所以我们可以通过委托来进行操作,如下:
delegate void SetTextCallBack(string text);//定义一个委托 void SetText(string text) { if (liDate.InvokeRequired)//如果主线程中的liDate在使用 { SetTextCallBack call = new SetTextCallBack(SetText);//实例化委托 Invoke(call, new string[] { text });//通过主程来进行调用委托的事件,并传送相关参数 } else { liDate.Text = text;//写值 } } //在线程中调用方法 SetText("你要设置的值");//线程中调用