質問: 同じ信号用の2つの異なるスロット m_serverClientControlがスレッドでfinishedRunning()を発行したとき、メインスレッドでどのスロットが最初に実行されるか最後に実行されるのかをどのように知ることができますか?このような状況でスロットはどのようにしてキューに入れられますか? Qtがスレッドイベントキューにスロットイベントを配置する方法として混乱しています。私は文書のイオンを読んだが、私はまだちょっと混乱している。 ``` connect( m_serverClientControl, SIGNAL( finishedRunning() ), m_serverClientControl, SLOT( deleteLater() ) ); connect( m_serverClientControl, SIGNAL( finishedRunning() ), this, SLOT( finishedRunningEmited() ) ) ```
回答: Qt 4.7のドキュメントから: > 複数のスロットが1つの信号に接続されている場合、スロットは > それらが接続された順に、順番に実行され、 > シグナルが放出されたとき。 > > http://doc.qt.io/archives/qt-4.7/signalsandslots .html#signals したがって、 `deleteLater()`の後に `finishedRunningEmited()`を呼び出す必要があります。