Windows线程从另一个线程休眠和唤醒
Windows thread sleep and wake from another thread
我有一个线程在一个类中运行,我想让它自己进入睡眠状态,并在另一个线程唤醒它时唤醒它,如果可能的话,不传递互斥或其他元素,所以它是自包含的。
基本上,我已经在调用WaitForSingleObject两次的线程中尝试了互斥体的方法,希望它在第一次调用时使互斥体不发出信号,但每次函数都返回0,因为互斥体已经发出信号,线程是互斥体的所有者,并且仍然是所有者。例如,我预计一旦进入睡眠状态,就会调用一个类方法来释放互斥对象。
在Windows中有一种简单的方法吗?还是我会被迫打破封装?运行
尽管Waitable句柄方法通常是处理此任务的首选方法,但您可以始终使用SuspendThread/ResumeThread来执行您想要执行的操作,而无需使用WaitForSingleObject/WaitForMultipleObjects。
这两个函数都有一个要休眠或唤醒的线程的句柄。
相关文章:
- 虚假唤醒是否会解锁所有等待线程,甚至是不相关的线程?
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 如果我们使用 notify_one() 来唤醒线程,我们还需要 yield() - C++?
- 唤醒多个线程以在每个条件下工作一次
- 视频在唤醒其他线程时输入设备断开连接
- 线程启动延迟 - 通知所有未唤醒所有线程
- 使用 Poco:Condition 唤醒两个线程
- std::condition_variable::notify_one() 不会唤醒等待线程
- 唤醒线程很耗时
- 如何定期唤醒 C++ 11 线程
- 我可以"force"线程唤醒吗?
- pthread_cond_wait唤醒多线程示例
- 如何唤醒从另一个线程选择没有超时时间的呼叫
- Boost::线程 / C++11 std::thread,想要唤醒工作线程的条件
- 固定到内核的 FIFO 线程上的 std::p romise::set_value 不会唤醒 std::future
- 线程同步和睡眠线程拒绝唤醒(LINUX)
- 在特定时间后唤醒线程
- 多线程同步和多线程唤醒
- 从另一个线程唤醒QThread::exec()
- std::condition_variable – 通知一次,但等待线程唤醒两次