0

我无法让表单中的网络浏览器正常工作。当我运行时,我收到此错误 ActiveX 控件 '8856f961-340a-11d0-a96b-00c04fd705a2' 无法实例化,因为当前线程不在单线程单元中。

它把我带到表单designer.cs文件到这个文本 this.webBrowser2 = new System.Windows.Forms.WebBrowser(); 我真的不知道该怎么做才能让浏览器正常工作。

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

谢谢

4

1 回答 1

2

您需要将线程标记为STAThread,因为 COM 控件需要该单元状态。

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

  • [STAThread]用属性标记你的线程入口点(你的线程开始的函数) 。如果您没有在入口点上设置它,而是在调用堆栈下方的某个其他方法上设置它,则不会应用此属性。
  • 如果您使用 System.Threading.Thread 类启动线程,则将线程的单元状态设置为STAThreadusingThread.SetApartmentState()
于 2011-10-22T02:57:11.890 回答