我的代码存在问题。有人可以说明为什么它在BackgroundWorker中不起作用,我该如何解决这个问题
string address = "My URL";
webBrowser.Navigate(new Uri(address));
do
{
Application.DoEvents();
} while (webBrowser.ReadyState != WebBrowserReadyState.Complete);
答案 0 :(得分:1)
没有!!
您最好打开一个新线程并从那里指示WebBrowser
Application.DoEvents()
有点evil。
以下是如何开始
System.Threading.Thread t = new System.Threading.Thread(() =>
{
yourWebBrowser.Navigate("http://Google.com");
});
t.ApartmentState = System.Threading.ApartmentState.STA;
t.Start();
要获得有关页面已加载的通知,您可以按以下方式订阅DocumentCompleted事件:
yourWebBrowser.DocumentCompleted += WebBrowserDocumentCompleted;
void WebBrowserDocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
throw new NotImplementedException();
}