【发布时间】:2014-09-26 19:42:40
【问题描述】:
我有两个QObjects A 和B 住在不同的QThreads。 A 将发出一个信号,而B 有一个匹配的槽。我想用connect()将A的信号连接到B的槽。
所以问题是,connect() 调用 线程安全 吗?连接是在两个线程中的哪一个线程中进行的吗?
【问题讨论】:
标签: qt thread-safety qt-signals
我有两个QObjects A 和B 住在不同的QThreads。 A 将发出一个信号,而B 有一个匹配的槽。我想用connect()将A的信号连接到B的槽。
所以问题是,connect() 调用 线程安全 吗?连接是在两个线程中的哪一个线程中进行的吗?
【问题讨论】:
标签: qt thread-safety qt-signals
是的,QObject::connect() 是线程安全的方法:
注意:这个类中的所有函数都是可重入的,但是connect(), connect()、disconnect() 和 disconnect() 也是线程安全的。
从哪个线程进行连接并不重要。但是您应该关心在您的对象之间使用auto connection(默认连接)、unique connection 或queued connection。你应该在你的两个线程中运行事件循环。
【讨论】: