有沒有什麼會等待事件發生(我正在等待的是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