進行中のアクションを作成する方法 WebBrowserDocumentCompleted は別のスレッドで機能しました。そのため、メイン フォームには影響しません (アプリケーション全体がハングすることはありません)。
フォーム1
private void bStart_Click(object sender, EventArgs e)
{
wb.Navigate("http://www.moswar.ru");
}
フォーム2
public void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
wb = sender as WebBrowser;
ThreadPool.QueueUserWorkItem(new WaitCallback((object unused) =>
{
if (wb.Document.GetElementById("login-email") != null)
{
wb.Document.GetElementById("login-email").InnerText = "myemail@blah.pe";
wb.Document.GetElementById("login-password").InnerText = "MyPassword";
GetElementsByClassName(new string[] { "button luxury" })[0].InvokeMember("click");
}
if (e.Url.AbsoluteUri == "http://www.moswar.ru/player/" || e.Url.AbsoluteUri == "http://www.moswar.ru/player/#login")
{
wb.Navigate("http://www.moswar.ru/metro/");
}
}));
//and so on .....
}