怎么判断HANDLE是否有效?

cba5796 2008-09-16 05:18:49
创建一个新了的线程,返回它的HANDLE,怎么判断它对应的线程的线程是否还在运行(是否退出)?
还有,如何判断HANDLE没有被初始化?

谢谢各位啦
...全文
352 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujianhei 2008-09-16
  • 打赏
  • 举报
回复
1. ::GetExitCodeThread()可以判断线程是否退出。
2. 线程是否完成初始化,一般WIN32下都是手动进行判断,系统并不知道;而MFC下AfxBeginThread已经完全封装好啦,即当它返回时,线程已完全初始化,而如果要进行Win32下线程初始化,参照AfxBeginThread自己写一个就可以。

cnzdgs 2008-09-16
  • 打赏
  • 举报
回复
1、用GetExitCodeThread,如果返回FALSE,表示句柄错误,如果返回成功,得到的ExitCode为STILL_ACTIVE表示线程正在运行,其它值表示线程已经结束。
2、没法判断,你可以自己把HANDLE初始化为0,后面通过判断其是否为0来确定是否有值。
wsphere 2008-09-16
  • 打赏
  • 举报
回复
用WaitForSingleObject()来wait线程是否退出

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧