Перейти к началу страницы; это дополнительная информацияЗапуск нескольких потоков пользовательского интерфейса
Я использую компонент (GeckoFX) для рендеринга некоторых веб-сайтов, хорошо, но его можно использовать только в форме Windows; так как он должен привязываться к объекту WinForms, который можно нарисовать. Поскольку все WinForms работают в одном потоке, я могу использовать только один экземпляр GeckoFX за раз; поэтому я решил создать «рабочий класс» в форме WinForm и добавить туда всю логику. Форма не требует связи с основной формой.
Теперь я могу запустить 10 окон, и в конечном итоге они будут работать, но каждая новая форма будет ждать, пока все остальные формы не обработают все свои события GeckoFX, так как вы не можете использовать несколько экземпляров в одном потоке. Кроме того, браузер должен находиться в UIThread. Итак:
Возможно ли создать несколько потоков пользовательского интерфейса (по одному для каждой формы)?
Я видел, как кто-то это делал (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), но никто никогда не получал свои образцы кода. Парень, у которого он работал, изначально использовал какую-то форму персонализированного сообщения, чтобы делать такие вещи, но я не знаю, как добиться чего-то подобного.
Я искал то, что искал, но GeckoFX теперь жалуется на нарушения доступа к памяти, поэтому я просто буду продолжать использовать свой единственный поток :-) –
Обратите внимание, что вам не нужно создавать форму для запуска цикл сообщения - просто используйте без параметров [Application.Run()] (https://msdn.microsoft.com/en-us/library/ms157900%28v=vs.110%29.aspx) в потоке. – ulatekh