Qtを使ったマルチスレッドでスレッド間通信を
QThreadとSIGNAL/SLOTを用いて実装しようと考えていました。
SIGNAL/SLOTを使えば
threadAから発信されたSIGNALを
threadBでSLOTする?ということができるのは理解できました。
ただ、connectする際にSINGNALの送信元を指定する必要があるため
どこからともなく送られてきたとあるSIGNALに対してSLOTの処理をする
というような処理ができないような気がします。
スレッドが2つ、3つとかならいいですが
それ以上になるとそれぞれのインスタンスを持つ事に抵抗があります
それを避けるにはスレッド生成時に親スレッドの方でconnectを行う
また、送信元を指定せずにSIGNALとSLOTだけを自身で紐付けして
どこからか発信されたSIGNALを受信したら処理をするような動きをしたい場合
0. SIGNALの発信を行う専用のクラスを作成してシグナルの送信元はそれだけに絞る
0. もうSIGNAL/SLOTは捨てて、別でメッセージキューを実装する
というぐらいしか思いつきませんでした。
一般的にはどのような実装方法になるのでしょうか?
根本的に勘違いしている部分もあるかもしれませんが
是非、回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
2019/06/13 02:08
2019/06/13 02:59
2019/06/13 05:37
2019/06/13 07:58
2019/06/17 00:31