多线程委托函数中访问webbrowser 等UI窗体控件,报错“由于以前的函数求值超时,函数求值被禁用+用户已关闭隐式函数计算。”
public delegate String GetKuaidiInfoDelegate(); public String GetKuaidiInfo() { if (webBrowser1.InvokeRequired) { GetKuaidiInfoDelegate cb = new GetKuaidiInfoDelegate(GetKuaidiInfo); String strContext = this.Invoke(cb).ToString(); ; return strContext; } else { String strContext = webBrowser1.Document.Body.InnerHtml; return strContext; } }
其中改为
public String GetKuaidiInfo() { if (webBrowser1.InvokeRequired)!!关键 { GetKuaidiInfoDelegate cb = new GetKuaidiInfoDelegate(GetKuaidiInfo); String strContext = this.Invoke(cb).ToString(); ; return strContext; } else { String strContext = webBrowser1.Document.Body.InnerHtml; return strContext; } }