Компонент WebBrowser c # время ожидания - PullRequest
0 голосов
/ 07 июля 2011

У меня следующий код

WebBrowser browser = new WebBrowser();
browser.Navigate(link);

Проблема в том, что мне нужно подождать 3 секунды, прежде чем я выполню следующую функцию (строку).Я пытался использовать Thread.Sleep(3000), но, очевидно, это не работает.

Так что я ищу способ подождать 3 секунды перед выполнением следующей строки кода и, тем не менее, позволить браузеру перейти к указанной ссылке

Ответы [ 2 ]

4 голосов
/ 07 июля 2011

Thread.Sleep() не работает, поскольку не позволяет обрабатывать события WebBrowser.

Я думаю, что вы действительно ищете, это событие, которое запускается после завершения навигации по странице:

WebBrowser browser = new WebBrowser();
browser.DocumentCompleted += (object sender, WebBrowserDocumentCompletedEventArgs e) =>
{
    //do your processing here or set completed flag
};
browser.Navigate(link);
0 голосов
/ 07 июля 2011

Я не уверен, где я его нашел, но у меня это сработало. Особенно я не вспоминаю о сне.

        Browser.Navigate(sLetterFile);
        while (Browser.ReadyState != WebBrowserReadyState.Complete)
        {
            System.Windows.Forms.Application.DoEvents();
        }
        Thread.Sleep(1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...