gpt4 book ai didi

c# - 让 WebBrowser 控件在控制台应用程序中工作?

转载 作者:可可西里 更新时间:2023-11-01 08:33:44 25 4
gpt4 key购买 nike

我有一个能够通过 WebBrowser 对象打印 HTML 的打印机类。我希望能够从控制台应用程序进行打印,但是当我的打印机类尝试创建 WebBrowser 对象时出现错误:

WebBrowser browser = new WebBrowser();

错误:

ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot 
be instantiated because the current thread is not in a
single-threaded apartment.

我尝试将对 System.Windows.Forms 的引用添加到我的控制台应用程序中,但这没有用。我对这里发生的事情一无所知,但我将不胜感激。

最佳答案

将 STAThread 属性添加到您的主方法。

[STAThread]
public static Main()
{
...
}

更新:在这里你应该如何处理创建浏览器的线程

thread.SetApartmentState(ApartmentState.STA);

更新 2:

如果每个应用一个线程:

Thread.CurrentThread.SetApartmentState(ApartmentState.STA);

关于c# - 让 WebBrowser 控件在控制台应用程序中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5519294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com