1

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

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

在 Windows 中是否有一个简单的方法或者我会被迫打破封装?跑

4

1 回答 1

3

尽管 Waitable 句柄方法是处理此任务的普遍受欢迎的方法,但您始终可以使用 SuspendThread / ResumeThread 来完成您尝试执行的操作,而无需使用 WaitForSingleObject / WaitForMultipleObjects。

这两个函数都处理您想要休眠或唤醒的线程。

于 2013-02-19T01:50:55.227 回答