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

  #4  
Старый 17.03.2008, 19:15
razzzar
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме:
725870

Репутация: 208
По умолчанию

wda,
читай внимательно. про синхронизацию я нислова не сказал. я спрашиваю именно о аллокации памяти.
вот некоторая часть кода:
Код:
// создаем поток и передаем ему его номер
hThreads = new HANDLE [nThreads];
for ( int i=0; i<nThreads; i++ )
{
		hThreads[i] = CreateThread(0, 0, Thread, (LPVOID) i, 0, 0);
}

// ...

unsigned long __stdcall Thread(LPVOID lpParam)
{
int nId = (int) lpParam;
Class clC;
clC.func1("qwe");
return 1;
}

// ...

int Class::func1(const char * szString)
{
std::string strString;
strString.assing(szString);
// обработка строки
// ...
}
я попробовал создать маленькую прогу, которая создает 3к потоков и в каждом из них создает string и делает assing(). все работает на ура. но как только я в потоке создаю экземпляр класса и вызываю его метод, де создается string и делается assing - все сразу вылетает (((

Последний раз редактировалось razzzar; 17.03.2008 в 19:30..
 
Ответить с цитированием