社区
进程/线程/DLL
帖子详情
多线程问题:调用了ResumeThread()恢复不了线程呢?
liudows
2005-03-20 08:40:52
我的程序是这样的:
程序是win32控制台程序。主线程A中用CreateThread()开了线程B,紧接着在A中调用SuspendThread()将A自身挂起自身挂起。在线程B中执行一些操作后,调用ResumeThread()恢复线程A,但是A中SuspendThread()后面的语句并没有被执行,光标一直闪烁,没有其它相应。
请问这是怎么回事?
谢谢!
...全文
480
8
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
8 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
keikey_xi
2005-03-24
这个问题我也遇到过,到现在也没解决,不过我测试的是NTVDM.EXE程序,当时我在进程中发现它时将其挂起,然后想恢复就不行了。有没有遇到同样情况的?如何解决?其它Windows程序都行。
打赏
举报
回复
赞
swimmingfish2004
2005-03-22
楼主是怎样设置信号量来保证执行的串行化的?
打赏
举报
回复
赞
mwp
2005-03-22
SuspendThread()多少次就要resumeThread()多少次
打赏
举报
回复
赞
liudows
2005-03-21
原因找到了,由于是并发执行,可能B中的ResumeThread()先执行,A中的Suspend才执行,从而A无法被唤醒。解决方法是,设置信号量,保证执行的串行化,即ResumeThread一定在SuspendThread之后执行。
但还是有问题,即使串行化了,调用ResumeThread还是没法唤醒线程A。
打赏
举报
回复
赞
swimmingfish2004
2005-03-21
是不是多次调用了SuspendThread,每次调用SuspendThread“暂停数”加1,调用ResumeThread减1.只有在其暂停数为0时,才会给线程调度处理器时间。
打赏
举报
回复
赞
oyljerry
2005-03-21
要不,不挂起线程,而是用内核事件event来控制执行的流程
打赏
举报
回复
赞
晨星
2005-03-20
再不行,把关键代码帖出来看看吧。
打赏
举报
回复
赞
晨星
2005-03-20
你把A的线程句柄传给B了吗?
还有,看看ResumeThread的返回值是啥?是0么?不是的话,用GetLastError()查一下。
打赏
举报
回复
赞
相关推荐
Create
Thread
创建
多
线程
与单
线程
比较
仿
多
线程
的效果一般有2种办法:第一种是通过定时器;第二种是启动
多
线程
,不同模式下启动函数不同,mfc与API与WIN32下面注意点也是有区别的! VC启动一个新
线程
的三种方法,有需要的朋友可以参考下。 第一种...
C++
多
线程
编程:
多
线程
API介绍
Resume
Thread
恢复
被挂起的
线程
的执行6. Sleep休眠
线程
的执行7. 示例代码18.WaitForSingleobject9. 终止
线程
9.1 Exit
Thread
()9.2 Terminate
Thread
()9.3 GetExitCode
Thread
获取
线程
结束码10. 示例代码211. _...
易语言
多
线程
Api封装
线程
挂起
恢复
销毁
封装
多
线程
模块-api-
线程
的挂起和
恢复
销毁 强制杀死或挂起
线程
会导致
线程
正在获取的锁资源无法释放;如果正在操作一块公共内存,可能会导致公共内存被破坏。一、Suspend
Thread
在实际环境中,
调用
Suspend
Thread
时...
多
线程
串口通信技术在GPS导航中的应用
GPS导航系统需要实时获取来自接收机串口的定位数据,在对串口实时监控的同时还可以在前台进行一些其他的操作,利用基于
多
线程
的串口通信编程思想方法可以很好地解决这一
问题
。介绍
多
线程
的基本概念和串口通信编程...
c++
多
线程
编程初学实例一.docx
本文介绍了CPU
多
线程
编程技术的方法。非常简单实用。
线程
是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行
线程
,主执行
线程
以函数地址形式,比如说main或WinMain函数,将程序的启动点...
发帖
进程/线程/DLL
微信扫一扫
点击复制链接
分享社区
下载分享明细
1.5w+
社区成员
4.9w+
社区内容
VC/MFC 进程/线程/DLL
社区管理员
加入社区
帖子事件
创建了帖子
2005-03-20 08:40
社区公告
暂无公告