我想暂停执行我的线程,直到一个特定的div已经通过ajax加载到WebBrowser实例中。很显然,我可以不断地检查这个存在DIV做这样的事情:等待WebBrowser ajax内容
while (Browser.Document.GetElementById("divid") == null) { Thread.Sleep(200); }
然而,睡眠线程的浏览器是在环路之间仅几个街区从实际加载在首位的内容浏览器。因此,似乎我需要在单独的线程中执行Browser.Navigate
方法 - 然后我可以继续检查/等待div的存在,同时WebBrowser实例继续加载我要求的URL。
但是,我在这方面的尝试失败了,我很想看看我应该如何去做这件事。我认为简单地调用一个new Thread(() => { Browser.Navigate(url); });
的新线程可以工作,但这样做后,没有任何加载和Browser.ReadyState保持为'未初始化'。我猜想我误解了如何正确地使用C#编写这样的程序,并会重视一些建议!
参见[WebBrowser控件=等待为页面加载完成](http://social.msdn.microsoft.com/Forums/windows/en-US/9e5d265c-8771-433c-a2aa-91b4eeb1d684/webbrowser-control-wait-for-page-load-to -complete功能于一个组件?论坛=的WinForms)。它说 - 调用'System.Windows.Forms.Application.DoEvents()'。 – Lijo 2014-03-27 14:09:13