sur le développement d'un serveur websocket je lance l'auditeur comme suit:ActiveX dans AsyncCallback
private void StartAccept()
{
_listener.BeginAcceptTcpClient(new AsyncCallback(HandleAsyncConnection), null);
}
pour l'avoir non bloquante pour être en mesure d'accepter la connexion multiple.
L'une des fonctions dans la fonction de rappel répondant doit imprimer une page HTML à l'imprimante par défaut sélectionnée:
WebBrowser webBrowser = new WebBrowser();
webBrowser.DocumentText = "<html><body><p>I am HTML text!</p><body></html>";
webBrowser.Print();
qui échoue depuis que je tente de créer l'objet WebBrowser à partir du AsyncCallback:
ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment.
Comment puis-je obtenir l'objet WebBrowser créé ici?
double possible de [Appartement monothread - ne peut pas instancier le contrôle ActiveX] (http://stackoverflow.com/questions/1418466/single-threaded-apartment-cannot-instantiate-activex-control) –
Ou envisagez un thread STA dédié et une file d'attente pour l'impression, de cette façon, une seule instanciation est requise. –
Merci pour l'indice .. après avoir suivi quelques liens j'ai fini avec cette solution qui fonctionne parfaitement: http://stackoverflow.com/questions/416314/print-html-document-from-windows-service-in-c- Sharp-sans-impression-dialogue –