gpt4 book ai didi

c++ - Windows 线程 sleep 并从另一个线程唤醒

转载 作者:可可西里 更新时间:2023-11-01 11:34:29 24 4
gpt4 key购买 nike

我有一个线程在一个类中运行,我想让自己进入休眠状态,并在另一个线程唤醒它时唤醒,如果可能的话,不传递互斥锁或其他元素,所以它是自包含的。

基本上,我已经尝试过在调用 WaitForSingleObject 两次的线程中使用互斥锁的方法,期望它使互斥锁在第一次调用时不发出信号,但每次函数返回 0,因为互斥锁已经发出信号并且线程是互斥锁的所有者,并且仍然是所有者。例如,我希望一旦进入休眠状态,就会调用一个类方法来释放互斥量。

在 Windows 中是否有一个简单的方法来解决这个问题,或者我会被迫打破封装吗?运行

最佳答案

虽然 Waitable 句柄方法通常是处理此任务的首选方法,但您始终可以使用 SuspendThread/ResumeThread 来执行您尝试执行的操作,而无需使用 WaitForSingleObject/WaitForMultipleObjects。

这两个函数都获取要休眠或唤醒的线程的句柄。

关于c++ - Windows 线程 sleep 并从另一个线程唤醒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com