| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Дождаться загрузки браузера |
| Автор: Алексеу 7.1.2009, 18:42 | ||
Хотел обратится с таким вопросом - использую webBrowser в программе, который работает в отдельном потоке. Браузер должен пройти по ряду сайтов, извлекая нужную информацию. Проблема в том, что если в цикле вызывать
то загрузка будет выполнена только последнего ресурса, а все остальные "проскочит". Как можно сделать так, чтобы браузер полностью загружал страницу, извлекал оттуда что-то, и лишь затем переходил на следующую итерацию в цикле? заранее спасибо. |
| Автор: Partizan 7.1.2009, 18:46 |
| Алексеу, конечно можно... когда страница загружена webBrowser кидает событие Navigated |
| Автор: Алексеу 7.1.2009, 18:56 | ||
| Partizan, вопрос не в этом. Там есть еще событие DocumentCompleted для этого, но они отработают хорошо только если загружать 1 страницу. А если нужно грузить в одном браузере много страниц подряд, то нет. Например:
События DocumentCompleted и Navigated если их вызывать то они отработают только для последнего элемента в массиве. Остальные урлы браузер не загрузит и "проглотит" по ходу выполнения цикла, остановившись на последнем элементе массива. Вопрос в том как сделать так, чтобы браузер подождал пока по очереди полностью загрузятся все урлы в массиве и будет вытянута информация, а лишь после этого перейти к следующему витку цикла? |
| Автор: nagg 7.1.2009, 19:26 |
| Получаете уведомление Navigated и лезете на следующий урл по очереди... |
| Автор: Алексеу 7.1.2009, 19:30 |
| nagg, это уведомление получается только на последнем урле массива, все что до этого быстро "перелистывается" не доходя до загрузки, к сожалению. |
| Автор: nagg 7.1.2009, 20:13 | ||
| Вы не совсем меня поняли, я говорил о чём-то таком: (mas - ваш массив ссылок)
|
| Автор: diadiavova 7.1.2009, 21:00 |
| Вообще-то, если надо с сервера грузить много документов и тянуть и зних инфу, то лучше использовать WebClient, забивать данные в очередь и обрабатывать её в отдельном потоке. Быстрее будет. |
| Автор: Алексеу 7.1.2009, 21:14 | ||
| Спасибо за советы! Решил следующим образом:
|