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-銳沒有專用打印對話框 –