Программирование для Windows NT

       

Функция _beginthreadex


В том случае, если вам нужны возможности функции CreateThread (например, необходимо создать задачу в приостановленном состоянии) и вместе с тем необходимо использовать функции библиотеки транслятора, имеет смысл обратить внимание на функцию_beginthreadex. Прототип этой функции мы привели ниже:

unsigned long _beginthreadex(

 

void     *Security,       // указатель на дескриптор защиты

 

unsigned StackSize,              // начальный размер стека

 

unsigned (*StartAddress)(void*), // адрес функции задачи

 

void     *ArgList,             // параметры для задачи

 

unsigned Initflag,             // параметры создания задачи

 

unsigned *ThrdAddr);           // адрес созданной задачи

Для запуска задачи в приостановленном состоянии через параметр Initflag необходимо передать значение CREATE_SUSPENDED.

Функция задачи, которая запускается с помощью функции _beginthreadex, имеет один параметр и возвращает 32-разрядное значение, аналогично функции задачи, запускаемой функцией CreateThread. Для завершения своего выполнения функция задачи должна использовать либо оператор возврата, либо функцию _endthreadex, не имеющую параметров.

В случае успеха функция _beginthreadex возвращает идентификатор запущенной задачи. Если же произошла ошибка, возвращается значение 0 (а не -1, как это было для функции _beginthread).



Содержание раздела