Qt 中的 connect() 调用线程安全吗?

Len*_*and 5 qt thread-safety qt-signals

我有两个QObjectsA并且B住在不同的QThreads 中。A将在有匹配的slot时发出信号。我想用来将的信号连接到的插槽。Bconnect()AB

所以问题是,connect()调用线程安全吗?在两个线程中的哪个线程中进行连接是否重要?

Max*_* Go 4

是的,QObject ::connect() 是线程安全的方法:

注意:该类中的所有函数都是可重入的,但 connect()、connect()、disconnect() 和disconnect() 也是线程安全的。

从哪个线程进行连接并不重要。但是您应该关心对象之间的auto connection(默认连接)unique connection排队连接的使用。并且您应该在两个线程中运行事件循环。

我还强烈建议您查看以下文章:第一第二