Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Управление многопоточностью (http://forum.oszone.net/showthread.php?t=111294)

mrcnn 12-07-2008 14:41 849620

Управление многопоточностью
 
Создаю новый поток
Код:

DWORD CALLBACK cff(LPVOID);
CreateThread(NULL,NULL, cff,0 ,0 ,&tid1);

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

pva 14-07-2008 13:10 850921

Для этого и существует параметр 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, иначе возможны утечки памяти


Время: 00:59.

Время: 00:59.
© OSzone.net 2001-