天天看点

_beginthreadex()和_endthreadex()

_beginthreadex()和_endthreadex() - [程序语言]

2008-01-08

Tag: 线程 beginthread endthread

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明

http://golog.blogbus.com/logs/10964622.html

线程开始和停止函数! 

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);

}

随机文章:

线程同步之信号量内核对象 2008-01-07 线程同步之临界区 2007-12-27 Vs2005发布网站到IIS后很慢的解决办法 2008-12-29 JSP 连接SQL Server2000的问题总结 2008-03-27 C C++中获取文件属性 2007-12-26

收藏到: Del.icio.us

继续阅读