私はQtを初めて使用するので、質問の単純さを許してください。しかし、Qtのスレッドについて少し混乱しています。3つのスレッドがあるとしましょう。メインのデフォルトのGUIスレッドと、自分で作成した2つのスレッド(WorkerThreadと呼ばれます)です。私の各WorkerThreadsはQThreadを継承し、永続的なスレッドであり、頻繁にウェイクアップしてデータをソケットに送信し、GUI要素にステータスを投稿します。1)GUIスレッドがWorkerThreadスレッドが使用できるWorkerThreadオブジェクトにデータを設定できるようにする最善の方法は何ですか?2)WorkerThreadがステータスをGUIスレッドに送信して、ユーザーに表示できるようにしますか?3)両方のWorkerThreadsが同じソケットを使用できるようにしますか?
ドキュメントから、WorkerThreadオブジェクトを作成すると、作成中のスレッドが所有しているように見えます(新しいスレッドであるrunメソッドを除く)。では、新しいスレッドを実行するためのデータをどのように設定するのでしょうか。新しいスレッドが使用するすべてのデータはグローバルである必要がありますか?たとえば、GUIで、ユーザーがウェイクアップ時に送信する各WorkerThreadのパケットタイプを選択できるようにしたいと思います。私は、GUIスレッドが通知するWorkerThreadのいくつかのスロットを配置すると想定していました。WorkerThreadオブジェクトがSetPacketTypeへのシグナルを受信すると、実行メソッドが各反復で参照するメンバー変数を設定します。しかし、ドキュメントを読んだ後、それがそれを行う方法かどうかはわかりません。WorkerThreadオブジェクトが作成スレッド(この場合はGUIスレッド)によって所有されている場合、それにシグナルを送信しません。
また、スレッド間でソケット接続を共有するための適切な手法は何ですか?
前もって感謝します。