C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Indy, проблема с компонентом IdHTTP в потоке.
Sergey
Отправлено: 05.01.2010, 19:44


Не зарегистрирован







Добрый день!
У меня проблема с компонентом IdHTTP. (NMHTTP тоже самое)

Суть проблемы.
Мною написана программа для обработки корпоративного прайс листа,
На сайте имеется n ное колличество страничек ~ 20, которые скачиваются параллельно в потоке, тупо для ускорения процесса, тк странички сами небольшие ~50кб
То есть я создаю параллельно 20 нитей :

[CODE]
DLGO* ListTh[20]; // DLGO — трит

//i_progress = ListInTh->Count;
//Synchronize(Update);

//ListInTh — список URL's
for ( int pos = 0; pos < ListInTh->Count ; pos++ )
{
ListTh[pos] = new DLGO(true);
ListTh[pos]->FreeOnTerminate = true;
ListTh[pos]->url = ListInTh->Strings[pos];
//ListTh[pos]->i_download_MainStr = 0;
ListTh[pos]->Resume();
}
[CODE]
Код трита, очень простой, потом через синхронайз данные передаются.
[CODE]
IdHTTP * http = new TIdHTTP(NULL);
try
{
item = http->Get(url);
}
catch(Exception &e)
{
//
http->Disconnect();
}
http->Disconnect();
delete http;
//
this->Terminate();
[CODE]
Так вот, странички скачиюваются, все замечательно НО в ~50% случаев некоторые странички скачиваются вместо других.
То есть:

site данные
1 111
2 222
3 333
4 444
5 555

после скачивания получается
1 111
2 111
3 333
4 444
5 555

При загрузки некоторых страниц , повторюсь в примерно 50% случаев я получаю данные других страц, никаких ошибок Indy мне не выдает,ссылки я все проверял.

С чем сие можеть быть связано? и что можно попробовать. При замене indy на nmhttp тоже самое.
Заранее спасибо.

Вернуться в Вопросы программирования в C++Builder