C# 从不是创建控件的线程访问它
创建代理 delegate void SetTextCallback(string text); 创建和启动线程 this.demoThread = new Thread(new ThreadStart(this.ThreadProcUnsafe)); this.demoThread.Start(); 线程中要求改主窗体UI中的text属性 private void ThreadProcSafe() { this.SetText("This text was set safely."); } 调用窗体中的函数用invoke传递参数 private void SetText(string text) { if (this.textBox1.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); } else { this.textBox1.Text = text; } }
待人以诚,做事用心,对事不对人.