跨线程 信号的连接类型
来源:互联网 发布:qq群机器人软件 编辑:程序博客网 时间:2024/05/22 04:45
Qt 需要查看信号发出的线程是不是与接受者所在线程一致,来决定连接类型。注意,Qt 检查的是信号发出的线程(即,信号在哪个Thread中emit的,)
classThread:publicQThread
{
Q_OBJECT
signals:
voidaSignal();
protected:
voidrun(){
emitaSignal();//在子线程中emit,发出信号
}
};
/* ... */
Thread thread;
Object obj;
QObject::connect(&thread,SIGNAL(aSignal()),&obj,SLOT(aSlot()));
thread.start();
aSignal()
信号在一个新的线程被发出(就是Thread
线程)。注意,因为这个线程Thread,并不是Object
所在的线程(Object
所在的线程是主线程),所以这里将会使用队列连接。
跨线程的信号槽也是类似的。当我们将信号与槽连接起来时,QObject::connect()
的最后一个参数将指定连接类型:
Qt::DirectConnection
:直接连接意味着槽函数将在信号发出的线程直接调用Qt::QueuedConnection
:队列连接意味着向接受者所在线程发送一个事件,该线程的事件循环将获得这个事件,然后之后的某个时刻调用槽函数Qt::BlockingQueuedConnection
:阻塞的队列连接就像队列连接,但是发送者线程将会阻塞,直到接受者所在线程的事件循环获得这个事件,槽函数被调用之后,函数才会返回Qt::AutoConnection
:自动连接(默认)意味着如果接受者所在线程就是当前线程,则使用直接连接;否则将使用队列连接
0 0
- 跨线程 信号的连接类型
- QT信号槽的跨线程连接
- Qt跨线程信号和槽的连接
- Qt跨线程信号和槽的连接
- QT跨线程连接信号和槽
- 对QT 的信号连接类型的理解
- 信号和槽的连接类型 Qt::ConnectionType 解析
- 跨线程的信号与槽
- QT 跨线程信号的注册
- QT跨线程的信号与槽
- QT 信号与槽在不同线程不能连接的问题
- android线程实现:实时显示所连接的wifi信号强度(代码带注释)
- QT 信号与槽在不同线程不能连接的问题
- QT 信号与槽在不同线程不能连接的问题
- Linux 下的信号类型
- 信号与槽的连接
- QT跨线程的信号与槽[2]---后台SOCKET
- Qt- “信号-槽”机制之连接类型 部分文档翻译
- JetBrains使用技能分享征集大赛优秀作品——用IDEA追忆一下童年
- TestNG中文乱码
- arcgis连接oracle,并向oracle中导入shp数据
- 搜狗输入法遇到生僻字的一些用法
- Java学习提要——'接口'的基础示例
- 跨线程 信号的连接类型
- Android应用的uid和pid
- Mac下Jenkins+SVN(Git)+Xcode搭建持续构建环境
- SQL中ISNULL的用法
- Swift 闭包
- java程序调用hive查询的一个异常
- 【编程语言】Spark Python 部署教程 CentOS 7
- js 中的function
- 计算几何之二维凸包:卷包裹算法、Graham Scan Algorithm、旋转卡壳算法