主线程结束时设置一个信号(全局变量就行),所有子线程检测到此信号就自行退出。主线程要做的只是等待(WaitForMultiObjects),等待的对象就是CreateThread时返回的句柄。
如果你的线程是随机创建和结束的,进程结束时无法确定那些线程仍在运行,可以用CreateToolhelp32Snapshot、Thread32First、Thread32Next枚举线程,得到句柄,然后等待。
不建议使用TerminateThread强行结束线程。如果非用这种“野蛮做法”,也大可不必对每个线程都调用TerminateThread,而只调用ExitProcess即可——ExitProcess自然会强行结束每一个子线程。
如果你的线程是随机创建和结束的,进程结束时无法确定那些线程仍在运行,可以用CreateToolhelp32Snapshot、Thread32First、Thread32Next枚举线程,得到句柄,然后等待。
不建议使用TerminateThread强行结束线程。如果非用这种“野蛮做法”,也大可不必对每个线程都调用TerminateThread,而只调用ExitProcess即可——ExitProcess自然会强行结束每一个子线程。
解决方案 »
- _CommandPtr不能用事务吗???
- 求助!
- 将文件通过http的post方法上传到服务器?
- 请高手看看这种代码,我功力不够,会有好处的
- 求救!!安装V C++简体中文企业版,提示 无法将'valec.exe'注册为DCOM服务。安装失败!
- UP有分,ADO+SQL Server2000:我定义了ADO的智能指针,他是如何连接到指定的数据库的?
- 谁给我讲讲cstring的用法?跟LPSTR怎么转换?
- 关于DirectShow采集并压缩视频数据(分不够可以再加)
- vb的picturebox控件能支持256色以上吗?
- 是不是可以同时继承2个类?
- 一个关于的高难度问题!!!!高手请进!!!!
- 如何改变图像的大小?详细请入内。。。
2。OpenProcess可以通过ID得到句柄;
3。Toolhelp的Process32First、Process32Next可以枚举进程并返回句柄;
4。用过继承或DuplicateHandle得到句柄;
5。GetCurrentProcess得到一个只能在本进程中代表当前进程的“伪”句柄。
这个uExitCode是不是可以任意指定啊?