スレッドXのオブジェクトから2つのシグナルAとBが順番に送信され、2つの接続スロットがメインスレッドにあります。接続はQueuedConnection(マルチスレッド接続のため)です。私の質問は、スロットへの呼び出しで尊重される信号の順序、またはそれらが任意の順序で実行される可能性があることです。Qt :: QueuedConnectionによるシグナル実行順序
8
A
答えて
6
シグナルは両方ともXスレッドの1つのイベントキューに入れられ、対応するスロットはシグナルが発行された順に実行されます。
しかし、あなたはスロットの実行順序に依存することはできません以下の場合:
signal A connected to a slot in X thread
signal B connected to a slot in Y thread
また、Qt::BlockingQueuedConnection
接続タイプがあります。最初のシグナルを接続すると、別のスレッドの対応するスロットが終了するまで、現在のスレッドはブロックされます。
5
現在のQTソース(5. *)によれば、それらはFIFOアルゴリズムを使用して放射された順番でディスパッチされます。しかし、コメントに記載されているように、この順序を指定する文書には何もないので、私はその動作を中継することを提案しません。
関連する問題
- 1. 実行ループ内での実行順序
- 2. bashスクリプトの実行順序
- 3. PHPコードの実行順序
- 4. Gradle doFirst()実行順序
- 5. asp.netマスターページの実行順序
- 6. アセンブリーとロジックアナライザー - 実行順序
- 7. jQuery/Javascriptの実行順序?
- 8. Javascriptコードの実行順序
- 9. Verilogの実行順序
- 10. Javascriptのキーイベント実行順序
- 11. オプションクラスのパペット実行順序
- 12. ASP.NET MVC:ValueProvidersの実行順序
- 13. Python unittestの実行順序
- 14. Wixのコンポーネント実行順序
- 15. Mysqlクエリの実行順序
- 16. Javaメソッドの実行順序
- 17. javascriptの実行順序
- 18. Javascriptの実行順序は、()
- 19. アクションフィルタの実行順序
- 20. jsf f:eventsの実行順序
- 21. javascriptイベントハンドラの実行順序
- 22. HTML解析順/スクリプトの実行順序
- 23. Javascriptコードが実行される順序
- 24. Pythonクラス実行する順序
- 25. 列/行による順序付け値
- 26. CloudSimでの実行順序の適用
- 27. HaskellのIOの実行順序
- 28. コードの難読化の実行順序
- 29. スレッドの実行順序のJava
- 30. PHPワークフロー - 関数の実行順序
私はいつもそれらが放出の順序で実行されたと考えました。なぜなら、それらは同じ優先順位で放出されるのでイベントキューにイベントとして追加されるからです。しかし、私はこれを確認するためのドキュメントを見つけることができないし、私はソースコードを見ていない... – cmannett85