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

  #4  
Старый 25.09.2009, 19:01
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

а вообще для таких целей есть интерлоковые функции которые юзаются внутри потока. типа такой:
Код:
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