【发布时间】:2011-11-09 20:49:24
【问题描述】:
在等待浏览器完成进程后再继续进行编码的最佳方式是什么?我在下面尝试了这段代码,并且在处理下一个链接之前,该过程不会等到它完成。
void WaitBrowserLoading()
{
while (webBrowser1.IsBusy)
Application.DoEvents();
for (int i = 0; i < 500; i++)
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
lblStoreID.Text = "";
//System.Threading.Thread.Sleep(5);
}
else
break;
Application.DoEvents();
}
【问题讨论】:
-
作为用户,您如何知道网络浏览器已完成?
-
@jeffamphone 我在表单上有一个浏览器窗口。我只需要一种方法来停止所有编码,直到 WebBrowser1 完成处理。你以前做过还是只是在询问?在 VB 中它很简单,但 C# 似乎没有可靠的方法来 100% 知道它已完成。
-
@acctman:你会在 VB 中做什么?
-
不,我正在做一个思考练习。我建议不可能知道网页何时完成。你怎么知道程序何时结束?你怎么知道是否有一些 JS 会在某个时间间隔内唤醒并决定做更多的工作,通过 XHR 加载更多数据等?
标签: c# winforms webbrowser-control