解决方法:
1、在窗体加载时加上这一句
private void FormDate_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; }
2、利用委托
//利用委托解决 "线程间操作无效: 从不是创建控件“LabMessage”的线程访问它。" private delegate void SetTextCallback(string text); //在给Label.text赋值的地方调用以下方法即可 private void SetText(string text) { // InvokeRequired需要比较调用线程ID和创建线程ID // 如果它们不相同则返回true if (this.LabMessage.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); } else { this.LabMessage.Text = text; } } //用于关闭等待窗体 private void closeWattingForm() { if (LabMessage != null) { SetText("再见!"); } }