私はbackgroundworker & webbrowserを使用して、いくつかのWebページをナビゲートしようとしました。私はそれが動作しないこの機能を使用しています。私は何がここで間違っているのか分からない。BackgroundWorker + WebBrowser
MessageBox.Show(arr [0])のみが表示されます。他には何もない。 Webブラウザも変更されません
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スレッドによって呼び出されているようだと思いました。たとえそれが非同期でないとしても、あなたはそれをとにかく待っています。 –