C#WebBrowser错误线程

时间:2011-10-22 02:51:56

标签: c# browser sta

我无法在我的表单中使用Web浏览器。当我运行时,我得到此错误ActiveX控件'8856f961-340a-11d0-a96b-00c04fd705a2'无法实例化,因为当前线程不在单线程单元中。

我需要将表单designer.cs文件发送到此文本this.webBrowser2 = new System.Windows.Forms.WebBrowser();而我真的不知道如何让浏览器工作。

我在Program.cs文件中尝试了MTAThread和STAThread似乎无法使其工作。

由于

1 个答案:

答案 0 :(得分:2)

您需要将线程标记为STAThread,因为COM控件需要公寓状态。

有两种简单的方法可以做到这一点:

  • 使用[STAThread]属性标记您的线程入口点(线程开头的函数)。如果您没有在入口点上设置它,而是在调用堆栈中的其他方法上设置它,则不会应用此属性。
  • 如果您使用System.Threading.Thread类启动线程,则使用STAThread
  • 将线程的单元状态设置为Thread.SetApartmentState()