有没有什么会等待事件发生(我正在等待的是WebBrowser.DocumentCompleted),然后执行代码?事情是这样的:有没有“When”类型的东西?
如果(WebBrowser.DocumentCompleted)
不会工作,因为它会直接跳过的代码,如果它返回false。
有没有什么会等待事件发生(我正在等待的是WebBrowser.DocumentCompleted),然后执行代码?事情是这样的:有没有“When”类型的东西?
如果(WebBrowser.DocumentCompleted)
不会工作,因为它会直接跳过的代码,如果它返回false。
你有没有考虑订阅到WebBrowser.DocumentCompleted事件?
webBrowser1.Navigate("http://www.stackoverflow.com/");
webBrowser1.DocumentCompleted += (sender, args) =>
{
//process web page
};
//keep on processing asynchronously here... (if you want :-p)
你必须绑定到事件:
WebBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;
...
private WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// Respond to the event
}
延伸阅读:
从您的要求,在我看来有两个possibilitie s到解决这个问题取决于条件:
注册
DocumentCompleted
事件并使用WebBrowser_DocumentCompleted事件处理程序来处理 您计划执行的东西。这段代码将等待直到 文件未完全加载。如果使用
Timer
类进行连续轮询,则应该查看WebBrowser.IsBusy属性。如果是false则文件 已加载完毕。但如果您有DocumentCompleted
事件的设施,则不会使用Timer
类。如果你使用这种方法 改变它。
你可以为它创建一个awaiter(例如,使用'TaskCompletionSource'),并使用C#5'async'。 – SLaks
你在写什么类型的程序?对于WinForms,WPF,控制台等,最好的答案是不同的。 – TheEvilPenguin
@TheEvilPenguin WinForms – Minicl55