我想暂停线程的执行,直到通过 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# 正确处理这样的线程程序,并且希望得到一些建议!
以下应该有效,
while (Browser.Document.GetElementById("divid") == null)
{
Application.DoEvents();
Thread.Sleep(200);
}
以上对我有用......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)