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 тоже самое.
Заранее спасибо. |
|
|