【发布时间】:2011-04-17 05:01:10
【问题描述】:
我想暂停线程的执行,直到通过 ajax 将特定的 div 加载到 WebBrowser 实例中。显然,我可以不断检查这个 div 的存在,例如:
while (Browser.Document.GetElementById("divid") == null) { Thread.Sleep(200); }
然而,让浏览器处于循环之间的线程休眠只会首先阻止浏览器实际加载内容。因此,我似乎需要在单独的线程中执行 Browser.Navigate 方法 - 然后我可以继续检查/等待 div 的存在,同时 WebBrowser 实例继续加载我要求它加载的 URL。
然而,我在这方面的尝试失败了,我会重视任何关于我应该如何去做的意见。我认为只需使用new Thread(() => { Browser.Navigate(url); }); 分派一个新线程就可以了,但是这样做之后,什么都没有加载,并且 Browser.ReadyState 保持为“未初始化”。我想我误解了如何使用 C# 正确处理这样的线程过程,并且会重视一些建议!
【问题讨论】:
-
参考WebBrowser control = wait for page load to complete。它说 - 打电话给
System.Windows.Forms.Application.DoEvents ()。
标签: c# .net multithreading browser