CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

如何判断一个线程的状态

楼主runi(我此刻却只想亲吻你倔强的嘴)2005-12-14 17:17:48 在 VC/MFC / 进程/线程/DLL 提问

请问C++中用什么API可以判断一个已知HANDLE的线程的状态呢? 问题点数:20、回复次数:9Top

1 楼runi(我此刻却只想亲吻你倔强的嘴)回复于 2005-12-15 09:49:07 得分 0

我想知道该线程当前是挂起还是运行状态,应该如何判断呢?Top

2 楼captainliyun(茄子)回复于 2005-12-15 10:42:41 得分 3

在线程外创建一个事件,  
  然后在线程的某个位置去等这个事件,等待时间为0,  
  要检查线程状态的时候,在外部去   SetEvent这个事件,如果线程等到这个事件.当线程等到这个事件后,就通知外面,就可以判断线程还在运行,如果外部在规定的事件内,没有等到线程的通知,可以认为线程挂起了.Top

3 楼freemme(路在脚下)回复于 2005-12-15 11:00:21 得分 3

然后在线程的某个位置去等这个事件,等待时间为0  
  ---------------------------  
  虽然设置等待时间为0,但是一般情况下最小精度是10毫秒,所以这种方式还是回影响线程效率,windows   API应该有函数可以获取线程状态的。  
  Top

4 楼captainliyun(茄子)回复于 2005-12-16 13:09:50 得分 3

楼上的,给个解决方案噻.Top

5 楼weiym(磨刀霍霍向猪羊)回复于 2005-12-16 17:39:02 得分 0

GetExitCodeThreadTop

6 楼song_09(song)回复于 2005-12-16 20:23:39 得分 3

直接用GetExitCodeThread()函数,它的返回值表明了线程的状态  
  Top

7 楼hpig(喜猪)回复于 2005-12-16 21:40:21 得分 3

or   WaitForSingleObject~~Top

8 楼runi(我此刻却只想亲吻你倔强的嘴)回复于 2005-12-19 11:27:53 得分 0

GetExitCodeThrea好像只能判断线程是不是还活着,而不能判断具体的挂起、休眠等状态吧?  
  Top

9 楼njg_jh(糨糊)回复于 2005-12-19 11:35:56 得分 5

BOOL   GetExitCodeThread(  
      HANDLE   hThread,             //   handle   to   the   thread  
      LPDWORD   lpExitCode       //   termination   status  
  );  
  If   the   specified   thread   has   not   terminated,   the   termination   status   returned   is   STILL_ACTIVE.   If   the   thread   has   terminated,   the   termination   status   returned   may   be   one   of   the   following:    
   
  The   exit   value   specified   in   the   ExitThread   or   TerminateThread   function.    
  The   return   value   from   the   thread   function.    
  The   exit   value   of   the   thread's   process.    
  Top

相关问题

  • 如何判断线程状态
  • 如何判断一个线程的状态?
  • 如何判断一个线程正在运行状态
  • 如何判断一个线程是否处于运行/挂起/未生成状态?
  • 如何判断线程正在运行
  • 如何根据线程ID判断线程是死是活
  • 如何判断socket状态??
  • 绝对好的问题:在主线程中如何判断子线程是否结束了?(线程池?)
  • 如何判断一个COM对象的线程模型?
  • 如何判断一个线程是否存在?

关键词

  • 线程
  • 判断
  • 状态
  • getexitcodethread
  • 事件
  • termination
  • thread
  • 等待时间为0
  • handle
  • status

得分解答快速导航

  • 帖主:runi
  • captainliyun
  • freemme
  • captainliyun
  • song_09
  • hpig
  • njg_jh

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo