Passare in fondo alla domanda; questo è solo alcune informazioni extraEseguire più thread dell'interfaccia utente
Sto usando un componente (GeckoFX) per rendere alcuni siti web, bene, ma può essere utilizzato solo in un Windows Form; in quanto deve legarsi a un oggetto WinForms che può essere disegnato. Poiché tutti i WinForm sono in esecuzione nello stesso thread, posso utilizzare solo un'istanza GeckoFX alla volta; così ho deciso di creare una "classe operaia" sotto forma di WinForm e di aggiungere tutta la logica. Il modulo non richiede di comunicare con il modulo principale.
Ora posso aprire 10 finestre e alla fine funzioneranno, ma ogni nuovo modulo attenderà prima che tutte le altre forme abbiano gestito tutti gli eventi GeckoFX, poiché non è possibile utilizzare più istanze su un thread. Inoltre, il browser deve essere su un UIThread. Quindi:
È possibile creare più thread dell'interfaccia utente (uno per ogni modulo)?
Ho visto qualcuno farlo (http://74.125.77.132/search?q=cache:PrFTaH2nx_YJ:geckofx.org/viewtopic.php%3Fid%3D453+geckofx+service&cd=1&hl=nl&ct=clnk&gl=nl&client=firefox-a), ma nessuno ha mai ottenuto il suo codice di esempio. Il tizio che ha funzionato originariamente ha usato una qualche forma di pompaggio di messaggi personalizzati per fare questo genere di cose, ma non ho idea di come ottenere qualcosa del genere.
Era un po 'quello che stavo cercando, eppure GeckoFX ora si lamenta delle violazioni di accesso alla memoria, quindi continuerò a far funzionare il mio thread singolo per ora :-) –
Nota che non devi creare un modulo da eseguire un ciclo di messaggi - basta usare l'parametro [Application.Run()] (https://msdn.microsoft.com/en-us/library/ms157900%28v=vs.110%29.aspx) su un thread. – ulatekh