我有一个windows.form.userControl类,在运行时我想动态添加一些链接标签。当我在Load方法中应用这段代码时,它完美地工作。如何以线程安全的方式更新控制
for (int i = 0; i < 10; i++)
{
linkLabel = new System.Windows.Forms.LinkLabel();
linkLabel.Name = i.ToString();
linkLabel.Text = i.ToString();
linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(linkLabel_LinkClicked);
this.Controls.Add(linkLabel);
linkLabel.Top = top;
top += 30;
}
可是当我中移动这个代码片段backgroudworker的doWork方法,它会给跨线程问题,在这条线的相关操作无效异常: - this.Controls.Add(的LinkLabel);
如何将此作为线程安全操作?我是C#的新手,我使用VS 2010使用C#4.0。 在此先感谢。
嗨弗洛里安,这一行'Invoke(AddLinkLabels);'给错误说无效论点。有关于此的任何想法?谢谢。 – 2011-05-31 05:00:21
@poor_guy:我更新了我的答案 – 2011-05-31 06:15:23
非凡:D非常感谢:-) – 2011-05-31 07:23:53