TerminateThread为什么结束不了线程呢
DWORD WINAPI ThreadFun(LPVOID p)
{
while(1)
{
///printf(" 子线程running \n");
Sleep(1000);
}
printf("线程结束了\n");
return 0;
}
int main()
{
typedef unsigned int (_stdcall *ThreadType )(LPVOID);
HANDLE hThread=(HANDLE)_beginthreadex(NULL,0,(ThreadType)ThreadFun,NULL,0,NULL);
printf("主线程 runing \n");
Sleep(500);
char c;
while( (c=getchar()) !='a');
//TerminateThread(HANDLE(944),1111);
TerminateThread(hThread,0);
if( GetExitCodeThread(hThread,&ExitCode) )
{
if(ExitCode==STILL_ACTIVE)
{
printf("子线程没有结束\n"); //这里可以打印出结果来,怎么回事
}
}
printf("主线程 dead \n");
CloseHandle(hThread);
return 0;
}
...全文
相关推荐
不能调用Suspend/TerminateThread的原因
不能调用Suspend/TerminateThread的原因在多线程编程中,SuspendThread和TerminateThread函数看似非常有用,可以控制线程的执行和终止。
windows C++多线程(三):线程终止结束ExitThread与TerminateThread
终止线程运行,最好的方法是自然返回return结束。在微软创建多线程API时,C/C++运行时库还不太成熟,导致一些API的调用与CRT会出冲突,使用CreateThread创建线程,并不是很推荐的,需要使用_beginthread。谈到线程终止,就得扯扯如下两个问题了 ExitThread() TerminateThread() 使用以上两个函数结束线程时,正常的return...
结束进程&线程(VB)
As Long) As Long' 假设hThread是你要结束的线程句柄TerminateThread hThread, 0```总结来说,"结束进程&线程(VB)"涉及到的知识点主要包括:1.
解析C/C++中如何终止线程的运行
**TerminateThread函数** TerminateThread是一个异步函数,允许立即终止指定的任何线程,无论其当前状态。
C++实现的可以安全的暂停、继续、停止线程的线程类和Sample
在使用线程时,最麻烦的就是线程的同步控制,如暂停、继续、停止(包括暂停状态下)等。虽然微软提供了 SuspendThread、TerminateThread 等函数“似乎”可以完成这个功能,但如果你在


进程/线程/DLL

