如何从创建控件的线程以外的线程访问控件,避免跨线程错误?
这是我的示例代码:
private void Form1_Load(object sender, EventArgs e)
{
Thread t = new Thread(foo);
t.Start();
}
private void foo()
{
this.Text = "Test";
}
有一个众所周知的小模式,如下所示:
public void SetText(string text)
{
if (this.InvokeRequired)
{
this.Invoke(new Action<string>(SetText), text);
}
else
{
this.Text = text;
}
}
还有一种快速的脏修复,除了测试之外,我不建议使用它。
Form.CheckForIllegalCrossThreadCalls = false;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)