Войти

Показать полную графическую версию : Управление многопоточностью


mrcnn
12-07-2008, 14:41
Создаю новый поток
DWORD CALLBACK cff(LPVOID);
CreateThread(NULL,NULL, cff,0 ,0 ,&tid1);

Возможно ли передать данные потоку не через глобальные переменные и не через файл, а непосредственно при создании?

pva
14-07-2008, 13:10
Для этого и существует параметр LPVOID

struct my_data_t {...}

unsigned long __stdcall cff(my_data_t* my_data)
{
// обрабатываем
delete my_data;
}

my_data_t *my_data = new my_data_t();
// заполняем my_data->...
CreateThread(0, 4096, LPTHREAD_START_ROUTINE(cff), &my_data, 0, &thr_id);

Если используешь библиотеку C/C++, лучше запускать поток функцией __beginthread, иначе возможны утечки памяти




© OSzone.net 2001-2012