在c ++中挂起和恢复线程
|
我的应用程序必须每隔几微秒暂停并恢复一个不同的进程。
它只有在感觉好像中止过程不均匀的时候才可以正常工作。
我使用win API:
ResumeThread
和SuspendThread
。
另一方面,我尝试了一些不同的方法。
我像往常一样用SuspendThread
挂起了线程,但是当我恢复它时,我这样做:
while (ResumeThread(threadHandle) > 0);
而且运行速度更快,并且以统一的速度运行其他过程。
为什么会发生?是否有可能有时线程被挂起两次,然后执行ResumeThread命令?
谢谢 :)
没有找到相关结果
已邀请:
3 个回复
babsoft
调用不会立即暂停线程。保存执行上下文需要花费一些时间,因此当线程尚未挂起时可能会调用ѭ5。这就是ѭ6工作的原因。若要确定当前线程状态,可以调用NtQueryInformationThread(),但只能在Windows的NT版本中。 如果辅助线程中存在循环,则可以使用“手动重置事件”来更改同步。主线程应调用ѭ7暂停线程,并调用ѭ8继续线程。每个循环的辅助线程应调用ѭ9。
掸牛浓疗
距相镭
花费了几毫秒,所以while循环继续进行,直到线程被挂起,然后再次调用线程进程
函数,这是调用
来查看EIP的好方法