【发布时间】:2013-04-08 22:31:38
【问题描述】:
我是 Qt 的新手。我在合理的时间内没有找到答案,所以决定在这里提问。
我有一个线程,我们称它为Thread1,带有一个连接槽的 Qt 对象。信号从同一线程 (Thread1) 发出。
我正在将此插槽与另一个 Thread2 断开连接。
这个操作线程安全吗? 如果同时发出一个信号并断开插槽,是否有任何问题?
【问题讨论】:
标签: multithreading qt qthread
我是 Qt 的新手。我在合理的时间内没有找到答案,所以决定在这里提问。
我有一个线程,我们称它为Thread1,带有一个连接槽的 Qt 对象。信号从同一线程 (Thread1) 发出。
我正在将此插槽与另一个 Thread2 断开连接。
这个操作线程安全吗? 如果同时发出一个信号并断开插槽,是否有任何问题?
【问题讨论】:
标签: multithreading qt qthread
只看文档,对我来说它看起来很安全:
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
注意:这个函数是线程安全的。
当您将一个线程的信号连接到另一个线程的插槽时,请确保您使用的是队列连接。如果在连接期间两个对象碰巧在同一个线程中,则自动连接可能会出现异常(并进行直接连接)。
希望对您有所帮助。
编辑:关于线程安全的更多信息:
【讨论】:
Is this operation thread safe?,人们会假设你知道thread safe 的含义。