C# WinForm 多线程使用委托操作窗体控件
1.需要通过委托操作的控件方法
public void InvokeMessage(string index, string result) { Label lbltip = new Label(); lbltip.BackColor = Color.Transparent; lbltip.Name = "lbltip"; lbltip.Text = "暂无产品数据!"; lbltip.ForeColor = Color.White; lbltip.Location = new Point(400, 25); if (index == "1"){ this.gvBuildList.Controls.Add(lbltip); } this.Refresh(); }
2.需要委托的方法注册给窗体委托
public void InvokeFrm(string index,string result) { this.Invoke(new InvokeMesage(InvokeMessage), new object[] { index,result }); }
测试示例
public static int Main(){ Thread thread = new Thread(new ThreadStart(TestAlpha)); thread.IsBackground = true; thread.Start(); } public void TestAlpha(){ int i = 0; while (i < 3) { InvokeFrm("1", i++); } }