【发布时间】:2016-08-04 02:10:52
【问题描述】:
SleepConditionVariableCS 的 MSDN 页面声明
条件变量会受到虚假唤醒(那些不是 与显式唤醒相关联)和被盗唤醒(另一个线程 设法在唤醒线程之前运行)。因此,您应该重新检查 睡眠操作后的谓词(通常在 while 循环中) 返回。
因此,条件等待必须包含在一个while循环中,即
while (check_predicate())
{
SleepConditionVariableCS(...)
}
如果我要使用 events 而不是条件变量,我可以在等待 (WaitForSingleObject) 发出事件信号时取消 while 循环吗?
【问题讨论】:
标签: windows multithreading winapi