#include <stdio.h>
#include <windows.h>
DWORD WINAPI ThreadProc( LPVOID lpParameter);
//GetExitCodeThread确定一个线程是否结束这个函数并不是一个好的方法
int main (void)
{
DWORD IDThread=0;
DWORD ExitCode1=0;
DWORD ExitCode2=0;
HANDLE hThread1=CreateThread(NULL,NULL,ThreadProc,(LPVOID)1,NULL,&IDThread);
HANDLE hThread2=CreateThread(NULL,NULL,ThreadProc,(LPVOID)2,NULL,&IDThread);
while(true)
{
getchar();
GetExitCodeThread(hThread1,&ExitCode1);
GetExitCodeThread(hThread1,&ExitCode2);
if (ExitCode1==STILL_ACTIVE)
{
printf("hThread1 ruing\n");
WaitForSingleObject(hThread1, INFINITE);
}
if (ExitCode2==STILL_ACTIVE)
{
printf("hThread2 ruing\n");
WaitForSingleObject(hThread2, INFINITE);
}
if (ExitCode1 != STILL_ACTIVE && ExitCode2 !=STILL_ACTIVE)
break;
}
CloseHandle(hThread1);
CloseHandle(hThread2);
printf("hThread1 %d\n",ExitCode1);
printf("hThread2 %d\n",ExitCode2);
getchar();
return 0;
}
DWORD WINAPI ThreadProc( LPVOID lpParameter)
{
Sleep((DWORD)lpParameter*1000*2);
return (DWORD)lpParameter*10;
}
/*
2015年5月5日 21:34:57
程序执行结果如下:
hThread1 10
hThread2 10
请按任意键继续. . .
*/
GetExitCodeThread
最新推荐文章于 2024-08-16 16:18:11 发布