Я попытался перемещаться по нескольким веб-страницам с помощью фонового рабочего & webbrowser. Я использую эту функцию, которая не работает. Я не уверен, что здесь происходит неправильно.BackgroundWorker + WebBrowser
Я вижу только MessageBox.Show (arr [0]); ничего больше. Если веб-браузер не изменяет слишком
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
string[] arr = { "http://stackoverflow.com/", "http://www.codeproject.com/", "http://www.codeplex.com/" };
for (int i = 0; i < 3; i++)
{
MessageBox.Show(arr[i]);
bB_checker.Invoke((EventHandler)delegate { bB_checker.Navigate(arr[i]); });
while (bB_checker.ReadyState != WebBrowserReadyState.Complete)
{
// System.Threading.Thread.Sleep(100);
Application.DoEvents();
}
}
}
Вам нужно быть немного более конкретным, чем «не работает». Есть ли исключение? Можете ли вы пройти через это? – Brook
Можете ли вы уточнить, что «это не работает», пожалуйста. Вы получаете ошибку, неправильный вывод или нет вывода, например? – ChrisF
Вам нужно вызвать делегата? Я думал, что Navigate - это асинхронная операция, и кажется, что этот метод уже вызван потоком GUI. Даже если это не асинхронный режим, вы все равно ждёте его. –