Führen Sie mehrere UI-Threads
Überspringen, um den Boden für die Frage; dies ist nur einige zusätzliche Informationen
Ich bin mit einer Komponente (GeckoFX) zu machen einige websites, auch gut, aber es kann nur in einer Windows-Form; wie es ist zu binden, um eine WinForms-Objekt, das gezeichnet werden kann. Da alle WinForms-laufen im gleichen thread, ich kann nur ein GeckoFX Instanz-zu einer Zeit, so habe ich beschlossen, erstellen Sie ein 'Arbeiter-Klasse' in form einer WinForm, und fügen Sie alle die Logik, die es gibt. Die form der nicht erforderlich ist, um die Kommunikation mit dem Haupt-form.
Jetzt kann ich Feuer bis zu 10 Fenstern, und Sie werden schließlich zu arbeiten, aber jede neue form wird warten, bevor all die anderen Formen behandelt haben, alle Ihre GeckoFX Ereignisse, wie Sie können nicht mehrere Instanzen in einem thread. Außerdem, der browser hat, um auf einer UIThread. Also:
Ist es möglich, mehrere UI-Threads (einer für jede form)?
Habe ich jemanden gesehen, tun es ([edit: gelöscht "schlecht" - link]), aber niemand hat jemals seinen code samples arbeiten. Der Mann, der es geschafft habe, die ursprünglich verwendet, irgendeine form von benutzerdefinierten Nachricht zu Pumpen, das zu tun diese Art der Dinge, aber ich habe keine Ahnung, wie das zu erreichen ist so etwas wie, dass.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass das, was Sie Fragen, ist wirklich das, was Sie wollen, aber das erstellen einer Nachricht, die Pumpe pro thread ist einfach, Sie müssen nur Anruf-Anwendung.Führen Sie einmal pro thread.
GeckoFx nicht erforderlich ist, eine form.
Anwendung.DoEvent().
oder
Schaffen multiplizieren threading-Formen:
Scheint, wie es möglich ist.
Nahm ich backgrounder, geöffnet TestApp, und erstellt ein neues Form1-thread/message Pumpe #2:
Zweiten Fenster auf Mausklicks reagiert etc.
Nicht wirklich überprüft, ob alles richtig aussieht, das freebie Visual Studio Express Edition, die ich verwende, fehlt die "Fäden" debug-Fenster, ähem. So bin ich ein wenig im Dunkeln. Es scheint zu funktionieren, obwohl. Lassen Sie mich wissen :-).