
25.09.2009, 19:01
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
а вообще для таких целей есть интерлоковые функции которые юзаются внутри потока. типа такой:
Код:
int uid = 1; //текущий айди юзера
void tfunc(void *argv)
{
int myID = InterlockedIncrement(&uid) - 1;
//здесь я создаю WinSock
sprintf( request, "GET /forum/profile.php?mode=viewprofile&u=%i HTTP/1.1\r\nHost: tfile.ru\r\nConnection: Close\r\n\r\n", my_ID); //пишу в запрос id юзера
//здесь завершаю работу WinSock
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(i=0;i<=4;i++)
{
_beginthread(tfunc, 0, NULL); //старт потока
}
}
т.е. значение переменной увеличивается на 1 через атомарный доступ к памяти. т.е. происходит блокировка шины памяти, то даже на многопроцессорных системах всё будет пахать офегительно.
К томуже IntToStr(uid).c_str() смысл юзать? или можно с шаблоне задать %i или %u
|
|
|