跨线程访问控件
InvokeRequired
this.textBox.InvokeRequired // 如果调用控件的线程和创建创建控件的线程不是同一个则为True
// 定义一个全局代理
private delegate void ShowVCodeInfoDelegate();
private void waitForVCode()
{
Console.WriteLine("进入waitForVCode");
if (this.webBrowser.InvokeRequired) // 如果调用控件的线程和创建创建控件的线程不是同一个则为True
{
ShowVCodeInfoDelegate dlg = new ShowVCodeInfoDelegate(waitForVCode);
this.Invoke(dlg);
}
else // 调用控件的线程和创建创建控件的线程是同一个, 不存在跨线程访问控件的问题
{
printVCodeInfo();
}
}
private void printVCodeInfo()
{
Console.WriteLine("vcode info.");
}
最后更新于
这有帮助吗?