QMutex + QWaitCondition对象是否可重用? 我有一个等待一些线程完成的方法。
void FinishWait()
{
mutex.lock();
waitCondition(&qMutex, ULONG_MAX);
}
在另一个线程上调用waitCondition.wakeOne()。
对FinishWait()的第一次调用有效,但即使我指定超时,第二次调用也不会返回。
答案 0 :(得分:4)
假设“mutex”和“qMutex”表示相同的变量(否则没有多大意义),您需要在wait()返回后解锁互斥锁。
void FinishWait()
{
mutex.lock();
waitCondition.wait(&mutex);
mutex.unlock();
}