Я пытаюсь написать функцию, которая будет динамически создавать страницы вкладок, заполнять вкладки, а затем возвращать данные о том, что они сделали. Есть события, которые сообщат мне, когда каждая вкладка будет готова, поэтому я смогу сказать, когда они все загрузятся.
Вся работа связана с пользовательским интерфейсом, и я понимаю, что пользовательский интерфейс должен происходить в основном потоке, поэтому мне кажется, что я не могу просто создать поток, чтобы сделать это, а затем ждать его в своей функции. Я неправильно понимаю проблему с пользовательским интерфейсом, который должен быть в главном потоке? Как я могу заставить свою функцию ждать, не блокируя работу, которая должна произойти в пользовательском интерфейсе?
РЕДАКТИРОВАТЬ: Чтобы уточнить, на вкладках есть элементы управления веб-браузера, которые будут загружать различные веб-страницы, поэтому они занимают некоторое время, и я получаю событие DocumentCompleted для каждой из них, когда она загружается. Идея такова: звонящий вручает мне список URL. Я открываю форму и создаю вкладку, содержащую элемент управления веб-браузера для каждого URL, и загружаю по одному URL в каждой вкладке. Они будут выполняться в разное время, каждый из которых запускает обработчик события DocumentComplete после загрузки страницы. Когда они все загрузятся, я хочу вернуть список данных исходному абоненту.