如何在线程上创建webBrowser控件

如何在线程上创建webBrowser控件

不要在非UI线程上创建webbrowser。 因为webbrowser不是线程安全的。

我开始尝试在线程中添加其他控件可以,但添加webbrowser却不行,提示错误:当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。请问这是什么意思

白了,webbrowser控件不是原生的,它是对一个com组件(shdocvw.dll)的包装。

默认情况下,你的UI线程有[STAThread]标记,所以可以运行webbrowser

其实你是不是可以在非可视化的情况先创建WebBrowser控件,然后在一定的时间后显示出来。你的问题如果是在线程中创建,网络慢的等待是永远存在的 论文网 

你不要在线程中创建啊,你先在窗口线程创建好后,在Visible为false的情况下加载啊

这种应该也是会卡住主程序的

Thread thread = new Thread(this.CreateWebBrowser);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();

void CreateWebBrowser()
{
    webBrowser2 = new System.Windows.Forms.WebBrowser();
}

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有