QTの別のスレッドと通信するためのベストプラクティスは何ですか?

StackOverflow https://stackoverflow.com/questions/2752678

  •  02-10-2019
  •  | 
  •  

質問

私は、Qeventsを送信することによりメインスレッドと通信するQThread派生クラスを持っています。

メインスレッドが2番目のスレッドと通信する最良の方法は何ですか?

メインスレッドには、2番目のスレッドへのポインターがあります。

役に立ちましたか?

解決

QTのオブジェクト間で通信する最良の方法は、信号とスロットを使用することです。これは、イベントループによって処理されるスレッドセーフの方法であり、あなたの側にロックする必要はありません。イベントを使用することもできますが、その使用は少し奇妙に思えます。イベントは、チャットするツールではなく、何かが起こっていることの通知です。

QMutex、QSemaphore、QWaitCondition、QREADWRITELOCKなどのスレッドプリミティブを使用することもできます(QMUTEXと同じですが、名前が示すように、両方ではなく、読み書きのいずれかでロックすることができます)。

QTドキュメントを読む必要があります。具体的には、 QTでのスレッドサポート ページ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top