Показать сообщение отдельно
  #1  
Старый 09.12.2012, 21:08
Pcrepair
 
Сообщения: n/a
По умолчанию Динамическое создание idHTTP или использование потока?

Добрый день. Есть базовая функция загрузки страницы (в упрощенном виде и без компоненты на форме):

Код:
function PageLoad(const Url:string; Loader:TidHTTP):string;
begin
  Loader:=TIdHTTP.Create(nil);
    Result:=Loader.Get(Url);
  FreeAndNil(Loader);
end;

Основный недостаток - если веб-сервер имеет невысокую скорость выдачи, то время закачки множества страниц увеличивается из-за загрузки страниц по очереди
Мне нужна одновременная загрузка до 10 страниц одновременно, чтобы по полной использовать трафик провайдера. Предварительно, функция будет иметь вид:

Код:
function LoadPageDisp(Url:TStringList):TstringList;
begin
  // тут конечно какой то цикл по запуску потоков или?
end;

где Url:TStringList - массив строк УРЛ, который функция получает от другой части программы. Выход функции - массив строк ХТМЛ-кода загруженных страниц
вроде бы есть два варианта запустить параллельную загрузку страниц - потоки и динамическое создание idHTTP
Внимание!!! Вопрос:
каким способом лучше организовать параллельную(одновременную) загрузка большого числа веб-страниц (не менее 10 одновременно)
Ответить с цитированием