QTの別のスレッドと通信するためのベストプラクティスは何ですか?
-
02-10-2019 - |
質問
私は、Qeventsを送信することによりメインスレッドと通信するQThread派生クラスを持っています。
メインスレッドが2番目のスレッドと通信する最良の方法は何ですか?
メインスレッドには、2番目のスレッドへのポインターがあります。
解決
QTのオブジェクト間で通信する最良の方法は、信号とスロットを使用することです。これは、イベントループによって処理されるスレッドセーフの方法であり、あなたの側にロックする必要はありません。イベントを使用することもできますが、その使用は少し奇妙に思えます。イベントは、チャットするツールではなく、何かが起こっていることの通知です。
QMutex、QSemaphore、QWaitCondition、QREADWRITELOCKなどのスレッドプリミティブを使用することもできます(QMUTEXと同じですが、名前が示すように、両方ではなく、読み書きのいずれかでロックすることができます)。
QTドキュメントを読む必要があります。具体的には、 QTでのスレッドサポート ページ。
所属していません StackOverflow