_beginthreadex参数详解

_beginthreadex参数详解线程开始和停止函数! unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *a

_beginthreadex参数详解

 

线程开始和停止函数! 

unsigned long _beginthreadex( void *security, unsigned stack_size, 
unsigned ( __stdcall *start_address )( void * ),
 void *arglist, unsigned initflag, unsigned *thrdaddr );
第一个参数是线程的安全属性,如果为NULL则为默认安全属性
第二个参数是用来指定线程堆栈的大小,如果为0,则线程堆栈大小和
创建他的线程的相同。一般用0
第三个参数指定线程函数,也就是线程调用执行的函数地址
第四个参数为传递给线程的参数列表 如果多于一个的话,使用结构,然
然后传给结构的指针
最后一个是线程的标识ID
void _endthreadex(unsigned status);
停止线程返回status中指定的代码
例子:
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);

}


今天的文章_beginthreadex参数详解分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30107.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注