Показать сообщение отдельно

  #5  
Старый 26.09.2009, 15:01
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

Цитата:
Сообщение от mailbrush  
В общем интересуюсь этой проблемой уже давно. Пишу парсер аккаунтов одного форума. Пока тестовый, в 5 потоках надо отпарсить только 5 юзеов. Есть код
Код:
int uid = 1; //текущий айди юзера

void tfunc(void *argv)  
{
//здесь я создаю WinSock
sprintf( request, "GET /forum/profile.php?mode=viewprofile&u=%s HTTP/1.1\r\nHost: tfile.ru\r\nConnection: Close\r\n\r\n", IntToStr(uid).c_str()); //пишу в запрос id юзера 
//здесь завершаю работу WinSock
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(i=0;i<=4;i++)
{
uid++;
_beginthread(tfunc, 0, NULL); //старт потока
}
}
Проблема в том, что запрос отправляется всегда с айди = 5, т.е. с последним значением uid. Почему?

утяж аргумент argv == NULL в beginthread, а вообще лучше - апи)
 
Ответить с цитированием