如何终止一个线程 一个线程,用来等待某事件的发生。其它线程如何得知此线程是否终止,如何终止此线程? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 线程终止存在两种情况:1、线程函数结束,线程自动终止;2、采用AfxEndThread、_endthreadex、TerminateThread强制终止线程。你可以为这个线程设置一个BOOL标志位,在线程创建的时候将其设为TRUE,在线程结束的时候,在线程函数中将其设为FALSE,全局变量或者是创建线程的类的成员变量都可。另外可以通过事件告诉其他线程这个线程结束了。 下面的一个方法供参考:/******************************************************************* 函数名: TerminatePPT** 输 入:** 输 出: ** 功能描述:终止PowerPoint进程** 全局变量:** 调用模块:** 作 者: ** 日 期: 2003-06-25 ** 修 改:** 版本: 2.0.0****************************************************************/BOOL CVConClient_Page_IE::TerminatePPT(){ HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32* processInfo=new PROCESSENTRY32; int processID = 0; processInfo->dwSize=sizeof(PROCESSENTRY32); int index=0; while(Process32Next(hSnapShot,processInfo)!=FALSE) { if(strcmp(processInfo->szExeFile,"POWERPNT.EXE") == 0) { processID = processInfo->th32ProcessID; break; } } CloseHandle(hSnapShot); HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,processID); if(hProcess==NULL) { delete processInfo; return FALSE; } TerminateProcess(hProcess,0); CloseHandle(hProcess); delete processInfo; processInfo = NULL; return TRUE;} 如何实现加密压缩?! 请问各位大虾:如何利用win-API实现打开/保存对话框功能呢 如何把sql server 2000数据库表中的值取出来赋给vc中的变量呢? 一个关于CSplitterWnd类的问题 简单问题,如何在单文档中使用CFileDialog类。 菜鸟求助:如果在一个对话框里加一个 HTTP 的超连接? ie9的工具栏运行一段时间会收缩在一起 Vc2008数据库登陆界面设计求助 高分求教:ISA卡在windows下如何用中断 一个简单的mfc问题 数据包接收不全的问题........大家帮我看看 急求: snmp 流量分析!
1、线程函数结束,线程自动终止;
2、采用AfxEndThread、_endthreadex、TerminateThread强制终止线程。
你可以为这个线程设置一个BOOL标志位,在线程创建的时候将其设为TRUE,在线程结束的时候,在线程函数中将其设为FALSE,全局变量或者是创建线程的类的成员变量都可。另外可以通过事件告诉其他线程这个线程结束了。
/*****************************************************************
** 函数名: TerminatePPT
** 输 入:
** 输 出:
** 功能描述:终止PowerPoint进程
** 全局变量:
** 调用模块:
** 作 者:
** 日 期: 2003-06-25
** 修 改:
** 版本: 2.0.0
****************************************************************/
BOOL CVConClient_Page_IE::TerminatePPT()
{
HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32* processInfo=new PROCESSENTRY32;
int processID = 0; processInfo->dwSize=sizeof(PROCESSENTRY32);
int index=0;
while(Process32Next(hSnapShot,processInfo)!=FALSE)
{
if(strcmp(processInfo->szExeFile,"POWERPNT.EXE") == 0)
{
processID = processInfo->th32ProcessID;
break;
}
}
CloseHandle(hSnapShot);
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,processID);
if(hProcess==NULL)
{
delete processInfo;
return FALSE;
}
TerminateProcess(hProcess,0);
CloseHandle(hProcess);
delete processInfo;
processInfo = NULL;
return TRUE;
}