Вверх ↑
Ответов: 4622
Рейтинг: 746
#1: 2018-12-13 15:42:01 ЛС | профиль | цитата
Sersey писал(а):
на момент когда компонент HTTPClient дает ответ, Proxy может уже сменится, а HTTPClient выдал за рабочий прокси предыдущий прокси
Ничего он не выдаст. Первый компонент ArrayEnum перебирает список с адресами страниц. Каждый адрес выдаётся событием onItem. Событие onItem вызывает метод HTTPClient.doLoadString. Так вот. Пока метод doLoadString не отработает - не завершится событие onItem и не выдастся следующая страница. А метод doLoadString не отработает, пока не выполнится запрос и не отработает событие HTTPClient.onFinish. А HTTPClient.onFinish не отработает пока не отработает всё, что к нему прицеплено по такому же принципу. Так же работает второй ArrayEnum, который перебирает список прокси, полученных перед ним: onItem выдаёт очередной прокси на второй HTTPClient, тот отрабатывает, проверяется результат его работы и в негативном случае ничего не происходит - цепочка по onItem завершается, ArrayEnum выдаёт второй адрес и всё повторяется. А если второй HTTPClient дал положительный результат, то прокси найден - всем компонентам ArrayEnum указывается прекратить перебор и выдачу страниц/адресов.
карма: 26

0
Редактировалось 1 раз(а), последний 2018-12-13 15:43:03