VOID ExitThread(
DWORD dwExitCode);
dwExitCode 指定此线程之结束代码
没有返回值
这函数有点像C runtime library中的exit()函数,因为他可以在任何时候调用并且绝不会返回。任何代码若放在此行之下,保证不会被执行。
#define WIN32_LEAN_AND_MEAN
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
DWORD WINAPI ThreadFunc(LPVOID);
void AnotherFunc(void);
int main()
{
HANDLE hThrd;
DWORD exitCode = 0;
DWORD threadId;
hThrd = CreateThread(NULL,
0,
ThreadFunc,
(LPVOID)1,
0,
&threadId);
if (hThrd)
{
printf(" Thread launched\n");
}
for(;;)
{
BOOL rc;
rc = GetExitCodeThread(hThrd,&exitCode);
if (rc && exitCode != STILL_ACTIVE)
break;
}
CloseHandle(hThrd);
printf("Thread returned %d\n",exitCode);
return EXIT_SUCCESS;
}
DWORD WINAPI ThreadFunc(LPVOID n)
{
printf("Thread running\n");
AnotherFunc();
return 0;
}
void AnotherFunc()
{
printf("About to exit thread\n");
ExitThread(4);
printf("This will never printf\n");
}线程启动后就执行的那个线程称为主线程(primary thread)。主线程两个特点。第一,他负责GUI(Graphic User Interface)程序中的注销信息循环。第二,这一线程的结束(不论是因为返回或因为调用了exitThread())会使得程序中的所有线程都被强迫结束,程序也因此而结束。其他线程没有机会做清理工作。
原文地址:http://blog.csdn.net/u011046042/article/details/42045061