如何在C#中使用后台工作者中的Web浏览器对象

我有下面的代码问题。 有人可以告诉为什么它在BackgroundWorker中不起作用,我该如何解决这个问题

string address = "My URL"; webBrowser.Navigate(new Uri(address)); do { Application.DoEvents(); } while (webBrowser.ReadyState != WebBrowserReadyState.Complete); 

没有!!

您最好打开一个新线程并从那里指示WebBrowser

Application.DoEvents()有点邪恶 。

这是你如何开始

 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(); }