0
在开发的WebSocket服务器我抛砖引玉听者如下:具有其无阻塞能够接受多个连接的ActiveX中的AsyncCallback
private void StartAccept()
{
_listener.BeginAcceptTcpClient(new AsyncCallback(HandleAsyncConnection), null);
}
。
之一的响应回调函数应该打印一个HTML页面到选定的默认打印机:
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentText = "<html><body><p>I am HTML text!</p><body></html>";
webBrowser.Print();
这是失败的,因为我尝试从AsyncCallback的中创建的web浏览器对象:
ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment.
我怎样才能让WebBrowser对象在这里创建?
的可能的复制[单线程公寓 - 不能实例化ActiveX控件(http://stackoverflow.com/questions/1418466/single-threaded-apartment-cannot-instantiate-activex-control) –
或者考虑一个专用的STA线程和一个Queue进行打印,这样只需要一个实例化。 –
感谢您的提示..后几个链接我结束了这个解决方案,完美的作品:http://stackoverflow.com/questions/416314/print-html-document-from-windows-service-in-c-锐没有专用打印对话框 –