当前线程不在单线程单元中,因此无法实例化 ActiveX 控件,应该怎么办?
1个回答
展开全部
dll里的WebBrowser 调用了Navigate 而这个DLL启用的线程导致的这个错误,通过委托的方式解决,只要是跨线程刷新界面都会出错, 意思是只要线程了使用的数据赋值到界面上都会出现这样的错误.都可以通过委托解决!改写Navigate :
public delegate void DelUserHandler(string url);
public void NavigateUrl(string url)
{
if (this.webbrowser1.InvokeRequired)
{
DelUserHandler handler = new DelUserHandler(NavigateUrl);
this.Invoke(handler, url);
}
else
{
this.webbrowser1.Navigate(url);
}}
public delegate void DelUserHandler(string url);
public void NavigateUrl(string url)
{
if (this.webbrowser1.InvokeRequired)
{
DelUserHandler handler = new DelUserHandler(NavigateUrl);
this.Invoke(handler, url);
}
else
{
this.webbrowser1.Navigate(url);
}}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询