MTAThread中使用WebBrowser的问题
试了网上N多方法都没有成功
主程序
[MTAThread]
static void Main()
{
采用CreateInstance方式创建子窗口
子窗口中要使用WebBrowser,,只要一 new WebBrowser();就报错
当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。
用代理的方式,还是设置线程为单线程的方式,都无法创建
设置单线程方式创建
Thread t = new Thread(new ThreadStart(AddWebBrowser));
t.SetApartmentState(ApartmentState.STA);
t.Start();
private void AddWebBrowser()
{
web = new WebBrowser();
//SetText(web);
}
提示"在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。"
设置成用委托方式创建,也不行
private void AddWebBrowser()
{
//web = new WebBrowser();
SetText(web);
}
delegate void SetWebBrowser(WebBrowser wwb);
private void SetText(WebBrowser wwb)
{
if (this.palDetail.InvokeRequired)
{
SetWebBrowser d = new SetWebBrowser(SetText);
this.Invoke(d, new object[] { wwb });
}
else
{
wwb = new WebBrowser();
this.palDetail.Controls.Add(wwb);
}
}
求高手帮忙一下,那么多多线程的程序,难道都不使用WebBrowse控件吗??谢谢