首页
社区
课程
招聘
怎样检测线程被暂停???????????????
发表于: 2013-5-21 13:28 4651

怎样检测线程被暂停???????????????

2013-5-21 13:28
4651
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
KTHREAD->SuspendCount
2013-5-21 13:43
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能具体点吗 大婶
2013-5-21 21:32
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你自己都不解释你的情况和碰到的问题,你要我怎么回答你的问题?要别人有诚意回答你的问题,你自己得首先有诚意吧.

看看别人是怎么问问题的http://bbs.pediy.com/showthread.php?t=170686
2013-5-22 00:04
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
第一次回答问题  不好请不要喷  第一次回答问题的人应该说的很清楚了 用API SuspendCount就可以检测  具体这个API的用法和返回值 你可以参考 这里的内容

http://www.cs.sysu.edu.cn/OS-course/course/03-2.htm   

一个线程可被多次挂起和多次激活。在线程控制块中有一个挂起计数(suspendcount),挂起操作使该计数加1,激活操作使该计数减1。当挂起计数从0变为l时,线程进入阻塞状态;当挂起计数由1变为0时,线程恢复执行。

这部分应该是你想要的   谢谢
2013-5-22 13:06
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有SuspendCount这个API。我找不到啊
主要是LZ都没说清楚环境,做驱动做程序都不说,我没法给他详细的建议。
应用层的SuspendThread和驱动的ZwSuspendThread(没导出)都是可以返回先前的SuspendCount值的,可以根据这个判断是否被暂停。可以先调用SuspendThread(ZwSuspendThread),获取先前的SuspendCount,然后再ResumeThread(ZwResumeThread),这样就可以根据返回值得到线程是否被挂起了。
直接从线程控制块里取也是可以的。
2013-5-22 13:14
0
游客
登录 | 注册 方可回帖
返回
//