我有一个在类中运行的线程,我希望将其自身发送到睡眠状态,并在另一个线程唤醒它时唤醒,如果可能的话,不会传递互斥锁或其他元素,因此它是自包含的。
基本上,我已经尝试了两次调用WaitForSingleObject的线程中的互斥锁的方法,期望它使互斥锁非信令第一次调用,但每次函数返回0因为互斥锁已经发出信号并且线程是互斥锁所有者并仍然是所有者。我预计,一旦睡着了,就会调用类方法来释放互斥锁,例如。
在Windows中是否有一个简单的方法或者我将被迫打破封装?运行
答案 0 :(得分:3)
虽然Waitable句柄方法是处理此任务的普遍受欢迎的方法,但您始终可以使用SuspendThread / ResumeThread来执行您尝试执行的操作而不使用WaitForSingleObject / WaitForMultipleObjects。
这两个函数都会处理您想要睡眠或唤醒的线程。