У меня есть приложение win forms, которое содержит элемент управления веб-браузера. Мне нужно иметь возможность добавить задержку между операциями в веб-браузере из-за асинхронного характера навигации.
Событие Document_Complete бесполезно, так как оно не учитывает, что страница может содержать несколько запросов AJAX. Случай пожара много раз.
UPDATE
AJAX-запросы выполняются при загрузке страницы. Таким образом, страница загружается, и содержимое в некотором DIV выбирается через HTTP-запрос. Таким образом, событие Document_Complete возникает при первой загрузке документа, а затем, когда возвращается каждый (AJAX) HTTP-запрос. Нет Буэно.
UPDATE2
Мое приложение пытается прочитать HtmlElements из объекта Webbrowser.Document. Поскольку код выполняется быстрее, чем возвращаются запросы HTTP ... объект документа не содержит все элементы html.
Мне нужен какой-то способ отложить вызов методов в главном потоке. Я пытался использовать таймер:
private void startTimer()
{
timer.Interval = 2000;
timer.Start();
while (!BrowserIsReady)
{
//Wait for timer
}
}
Это блокирует поток, и событие тика никогда не срабатывает. Эта петля никогда не заканчивается.
Я хочу запустить серию таких методов:
Navagate("http://someurl.com");
//delay
ClickALink();
//delay
Navagate("Http://somewhere.com");
//delay
Можно ли решить эту проблему с помощью таймера и BackgroundWorker? Может кто-нибудь предложить возможное решение?