将线程m_bAutoDelete设为TRUE,就不需要显示终止它,否则必须显示终止,不然会使进程无法完全结束,现象是:程序已关闭,但用ctrl+alt+del会看到进程仍在内存中,可以硬杀掉。
解决方案 »
- 问个关于指针赋初值的初级问题
- 如何实现把一个文件夹及里面的文件一起拷贝到指定的路径目录下.
- 编写处理3000-5000个TCP长连接的服务器,各位给点建议
- 如何使用别人编写的动态连接库?
- CListctrl::FindItem()只能在第一列中查找吗?
- 在CVIEW里显示一幅图片,但最大化窗口后就没了,怎样让图片一直在?
- 怎样在两个都已经打开的窗口之间传数据(VC++)
- 请问通过DOM创建xml文档的一般步骤?
- 求一个手机学习VC的网站
- 编译时,这个警告是什么意思?如何解决?warning LNK4098: defaultlib "LIBC" conflicts ...
- 执行vcvars32.bat,提示"Out of environment space"怎么办?
- help
但是我没用MFC, 而是用api创建的线程
明确的杀掉thread.
其实用m_bAutoDelete设为TRUE实现隐式终止线程是一个骗局,进程结束时只不过是根据这个变量决定是否调用有关的API函数。如果你直接用API函数编程,那就只有显示终止了,就是说不存在隐式终止法!
如果主线程退出时显式地调用ExitThread,将不终止其他线程,但其他线程中必须有一个显式地调用ExitProcess,否则即使所有线程都结束了系统也不认为该进程已结束
因此,最好在主线程退出时通知其他线程,待其他线程结束后再返回