Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Проблема с многопточностью. Borland C++ Builder |

04.04.2010, 11:49
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Проблема с многопточностью. Borland C++ Builder
Возникла проблема с многопоточностью. Есть 100-поточная программа, которая для теста обращается к странице http://example.com. Проблема в том, что при первом нажатие кнопки (код ниже) происходит не 100, а рандумное количество запросов до 100 (н.п. 84, 95, 66, 52)... При втором же - ровно 100, как положено. Отснифал Process Explorer'ом - потоки создаются все, но вот запросы идут не все. И это только при ПЕРВОМ нажатии кнопки. При втором и всем последующим все идет как надо. Почему? Буду очень благодарен за помощь. Использую Borland C++ Builder 6.
Вот код запуска потоков:
PHP код:
TMyThread * Thr[1000];
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
for(i=0;i<100;i++)
Thr[i] = new TMyThread(false);
}
Вот метод Execute:
PHP код:
void __fastcall TMyThread::Execute()
{
HINSTANCE libcurl = NULL;
if((libcurl = LoadLibrary( "libcurl.dll" )) == NULL)
MessageBox(NULL, "ы", MB_OK, 0);
CURL*(__stdcall *curl_easy_init)();
CURLcode(__stdcall *curl_easy_setopt )(CURL *curl, CURLoption option, ...);
CURLcode (__stdcall *curl_easy_perform )(CURL *curl);
void (__stdcall *curl_easy_cleanup )(CURL *curl);
curl_easy_init=(CURL*(__stdcall*)())GetProcAddress(libcurl, "curl_easy_init" );
curl_easy_setopt=(CURLcode(__stdcall *)(CURL *curl, CURLoption option, ...))
GetProcAddress(libcurl, "curl_easy_setopt");
curl_easy_perform=(CURLcode(__stdcall *)(CURL *curl))GetProcAddress(libcurl, "curl_easy_perform" );
curl_easy_cleanup=(void (__stdcall *)(CURL *curl))GetProcAddress(libcurl, "curl_easy_cleanup" );
CURL *curl;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &table);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
|
|
|
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Проблема с дедиками [help!]
|
Sniper482 |
Безопасность |
4 |
14.09.2009 21:22 |
|
Проблема с дллкой (С++ Builder)
|
_nic |
С/С++, C#, Delphi, .NET, Asm |
4 |
09.09.2009 12:19 |
|
Embarcadero: C++ Builder 2009
|
Kollinz |
С/С++, C#, Delphi, .NET, Asm |
1 |
11.08.2009 11:27 |
|
[Статья] Создание расширения для Windows Explorer при помощи C++ Builder
|
Dobby007 |
С/С++, C#, Delphi, .NET, Asm |
2 |
29.03.2009 08:58 |
|
С++ Builder проблема с кучей
|
_nic |
С/С++, C#, Delphi, .NET, Asm |
13 |
06.02.2009 01:26 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|