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