读书人

新手有关问题_线程

发布时间: 2012-02-06 15:52:45 作者: rapoo

新手问题____线程
#include<iostream>
#include <string>
#include <process.h>
using namespace std;

unsigned _stdcall show(LPVOID param)
{
for(int i = 0 ; i < 5; i++)
{
cout<<"测试中 "<<i<<endl;
Sleep(10000);
}
_endthreadex(1);
return 0;
}
int main( void )
{
unsigned int id;
int a =_beginthreadex(NULL,0,show,NULL,0,&id);
Sleep(100);//去掉此句的话没有任何输出,直接退出了,加上的话输出测试中0一句话然后退出
return 0;//标记2
}

按照我上面写的如果没有Sleep(100);函数show没有被执行完,我想问的是在这样的情况下,什么办法可以一定使函数show执行完然后执行标记2那一句,用WaitForSingleObject但是它需要句柄,而beginthreadex返回的是一个int数据

[解决办法]
返回的就是线程句柄

强制转换一下就是了

C/C++ code
 hThread = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, NULL, 0, &threadID ); WaitForSingleObject( hThread, INFINITE ); 

读书人网 >C++

热点推荐