Метод waitForPageLoad блокирует, это означает, что текущий исполняющий поток будет блокироваться, пока не завершится выполнение метода. Есть два способа остановить блокировку вашего приложения:
- Укажите время ожидания.
- Запуск нескольких потоков.
Документация для waitForPageLoad указывает на наличие значения тайм-аута, поэтому установите для тайм-аута какое-то разумное значение, и функция вернется, как только страница загрузится или истечет тайм-аут:
void waitForPageLoad(
in DOMDocument document,
in int timeout,
in int interval
);
Второй вариант - запуск нескольких потоков, которые в любом случае могут быть вам полезны. Каждой теме будет поручено загрузить страницу, обработать ее и выбрать другую страницу для загрузки (из очереди страниц).