首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手有关问题_线程

2012-02-06 
新手问题____线程#includeiostream#include string#include process.husing namespace stdunsigned

新手问题____线程
#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 ); 

热点排行