0

我是 Qt 的新手。我在合理的时间内没有找到答案,所以决定在这里提问。

我有一个线程,让我们Thread1用具有连接插槽的 Qt 对象来调用它。信号从同一个线程 ( Thread1) 发出。我正在将此插槽与另一个Thread2.

这个操作线程安全吗?如果发出信号并且插槽恰好同时断开,是否有任何问题?

4

1 回答 1

1

只看文档,对我来说看起来很安全:

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

注意:这个函数是线程安全的。

当您将一个线程的信号连接到另一个线程的插槽时,还要确保您使用的是队列连接。如果在连接期间两个对象碰巧在同一个线程中,则自动连接可能会出现异常(并进行直接连接)。

希望有帮助。

编辑:有关线程安全的更多信息:

http://qt-project.org/doc/qt-4.8/threads-reentrancy.html

http://qt-project.org/doc/qt-4.8/threads-qobject.html

于 2013-04-08T22:46:36.883 回答