开启线程

开启线程

目录

1. _beginthreadex() 开始

2. _endthreadex() 停止

3. 例子:

1. _beginthreadex() 开始

unsigned long _beginthreadex( void *security,

unsigned stack_size,

unsigned ( __stdcall *start_address )( void * ),

void *arglist,

unsigned initflag, unsigned *thrdaddr

);

参数1:security 传入线程安全属性,NULL为默认安全属性 参数2:stack_size 传入线程堆栈的大小,如果为0,则线程堆栈大小和创建他的线程的相同。一般用0 参数3:start_address 传入线程函数,也就是线程调用执行的函数地址 参数4:initflag 传入参数列表,多参数用结构保存,在此传入结构的指针 参数5:thrdaddr 返回线程的标识ID

2. _endthreadex() 停止

void _endthreadex(unsigned status);

停止线程,返回status中指定的代码

3. 例子:

//参数结构体

struct agrclist{

char *data;

int count;

};

//线程函数

unsigned __stdcall DoTest(void *mArgclist){

agrclist *pagrclist;

pagrclist=(struct agrclist *)mArgclist;

cout << pagrclist->data;

cout << pagrclist->count;

_endthreadex(0);

return 0;

}

//主函数

void main(void){

char buf[128];

HANDLE hThread;

unsigned int threadid;

agrclist magrclist,*pmagrclist;//传给线程的参数列表

pmagrclist=&magrclist;

pmagrclist->data=buf;

pmagrclist->count=1;

hThread=(HANDLE)_beginthreadex(NULL,0,&DoTest,pmagrclist,NULL,&threadid);

closeHandle(hThread);

}

相关内容

DIY游戏哪些值得玩 十大经典DIY游戏排行
365bet官网开户网址

DIY游戏哪些值得玩 十大经典DIY游戏排行

⌛ 08-25 👁️ 5507
键合条带的主要类型有哪些?
bt365体育备用网址

键合条带的主要类型有哪些?

⌛ 07-21 👁️ 6878
mysql数据库类型有哪些
365bet官网开户网址

mysql数据库类型有哪些

⌛ 07-31 👁️ 7643