目前我正在使用 WinForms(C# 语言),并且必须在后台运行该应用程序。为此,我使用异步。当我运行该应用程序时,它显示一个异常,例如
“跨线程操作无效:从创建它的线程以外的线程访问控制''。”
我该如何解决这个错误?
当对控件进行方法调用时,如果调用者位于与创建控件的线程不同的线程上,则需要使用控制.调用 http://msdn.microsoft.com/en-us/library/zyzhdc6b.aspx。这是一个代码示例:
// you can define a delegate with the signature you want
public delegate void UpdateControlsDelegate();
public void SomeMethod()
{
//this method is executed by the background worker
InvokeUpdateControls();
}
public void InvokeUpdateControls()
{
if (this.InvokeRequired)
{
this.Invoke(new UpdateControlsDelegate(UpdateControls));
}
else
{
UpdateControls();
}
}
private void UpdateControls()
{
// update your controls here
}
希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)