0
私はQtにいくつかのスレッドを書いていますが、偽の起床から保護するために、条件変数に述語を渡す方法を理解できません。述語をQWaitConditionに渡すか?
std::mutex(mu);
std::condition_variable cond;
std::unique_lock<mutex> alpha_lock(mu);
cond.wait(alpha_lock, [](){ return //some condition;});
alpha_lock.unlock();
//Continue to do stuff...
Qtの同等:
QMutex mu;
QWaitCondition cond;
QMutexLocker alpha_lock&(mu);
cond.wait(&mu, [](){return //some condition;})
はエラー:このQtのコードで述語を使用する方法について
"no matching member function for call to wait"
任意のアイデアC++でソリューションをワーキング
?
QaitConditionにコールバックを渡すことができるドキュメントはどこですか。私は何も見ていない。 http://doc.qt.io/qt-5/qwaitcondition.html私はちょうどwhileループでそれを包むことを推測しています。 while(!condition_to_test)qtwaitcondition.wait(); – xaxxon
実際の質問です:あなたは標準のC++を使った実用的なソリューションを持っているので、Qtを使うようにトランスコードするのはなぜですか? C++ソリューションを使用できない理由はありますか? – IInspectable
@IInspectableこれはデスクトップアプリケーション用ですので、完全なクロスプラットフォーム互換性を保証するためにQt契約を使用してください –