首页 > 代码库 > 使用强制性的手段来结束一个进程
使用强制性的手段来结束一个进程
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())会使得程序中的所有线程都被强迫结束,程序也因此而结束。其他线程没有机会做清理工作。
使用强制性的手段来结束一个进程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。