[填坑]QT信号与槽机制注意事项

时间:2024-03-26 18:50:44

1、信号与槽机制与回调函数性能对比

信号与槽机制比回调函数的方式要慢,当槽函数是非虚函数时,信号与槽机制大约比回到函数机制慢10倍,但依旧能够满足大多数应用的需求,因为1秒钟可以出发200万次这样的信号(i586-500机器,1个信号绑定一个槽函数,绑定两个1秒可以触发120万次)。

2、同一个信号与槽函数连接多次

默认情况下(Qt::AutoConnection)同一个信号和槽函数绑定几次,就会执行几次。可以使用(Qt::UniqueConnection)解决

3、多线程中发送完信号,默认不阻塞

多线程中当前线程发送信号到其他线程之后,当前线程直接往下运行,除非connect时使用Qt::BlockingQueuedConnection模式,进入阻塞等待槽函数线程返回。

4、多线程中槽函数并非实时执行

槽函数线程收到信号之后也未必立刻执行槽函数,而是当执行到检测程序,检测到队列中有信号才执行,因此多线程槽函数存在实时性风险。

[填坑]QT信号与槽机制注意事项

5、信号发送过快,可能导致槽函数执行混乱

Qt中的信号如果触发的太快,槽这边都来不及执行完自己的任务,后面的信号又开始触发了,好像没有避免的方法,有的话欢迎留言

Qt 信号和槽机制压力测试-希望有前辈发表自己的看法

https://www.cnblogs.com/craigtao/p/6617561.html