我想同步调用webBrowser.Navigate(string urlString)webBrowser是Windows窗体控件.我是这样做的
...
private delegate void NavigateDelegate(string s);
...
private void Function()
{
NavigateDelegate navigateDelegate =
new NavigateDelegate(this.webBrowser1.Navigate);
IAsyncResult asyncResult =
navigateDelegate.BeginInvoke("http://google.com", null, null);
while (!asyncResult.IsCompleted)
{
Thread.Sleep(10);
}
MessageBox.Show("Operation has completed !");
}
Run Code Online (Sandbox Code Playgroud)
但信息永远不会被推.为什么这段代码不能正常工作?
不是最好的方法,但你可以使用这个......
while (this.webBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
Thread.Sleep(100);
}
Run Code Online (Sandbox Code Playgroud)
而是使用它来同步检索页面:
this.webBrowser.DocumentCompleted += WebBrowserDocumentCompleted;
this.webBrowser.Navigate("http://google.com");
private void WebBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
MessageBox.Show("Operation has completed !");
}
Run Code Online (Sandbox Code Playgroud)