Windows线程从另一个线程休眠和唤醒

Windows thread sleep and wake from another thread

本文关键字:线程 唤醒 休眠 另一个 Windows      更新时间:2023-10-16

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

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

在Windows中有一种简单的方法吗?还是我会被迫打破封装?运行

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

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