私はQtの初心者です。妥当な時間内に回答が見つからなかったので、ここで質問することにしました。
Thread1
スレッドがあります。接続されたスロットを持つ Qt オブジェクトで呼び出しましょう。シグナルは同じスレッドから発行されます ( Thread1
)。そして、このスロットを別のスロットから切断していますThread2
。
この操作はスレッドセーフですか? 信号が送信され、スロットがまったく同時に切断された場合、問題はありますか?
私はQtの初心者です。妥当な時間内に回答が見つからなかったので、ここで質問することにしました。
Thread1
スレッドがあります。接続されたスロットを持つ Qt オブジェクトで呼び出しましょう。シグナルは同じスレッドから発行されます ( Thread1
)。そして、このスロットを別のスロットから切断していますThread2
。
この操作はスレッドセーフですか? 信号が送信され、スロットがまったく同時に切断された場合、問題はありますか?
ドキュメントを見るだけで、私には安全に見えます:
http://qt-project.org/doc/qt-4.8/qobject.html
注: このクラスのすべての関数は再入可能ですが、connect()、connect()、disconnect()、および disconnect() もスレッドセーフです。
http://qt-project.org/doc/qt-4.8/qobject.html#disconnect
注: この関数はスレッドセーフです。
また、あるスレッドのシグナルを別のスレッドのスロットに接続する場合は、キュー接続を使用していることを確認してください。接続時に両方のオブジェクトがたまたま同じスレッドにある場合、自動接続は誤動作する (そして直接接続を行う) 可能性があります。
それが役立つことを願っています。
EDIT:スレッドセーフの詳細: