1、信号与槽机制与回调函数性能对比
信号与槽机制比回调函数的方式要慢,当槽函数是非虚函数时,信号与槽机制大约比回到函数机制慢10倍,但依旧能够满足大多数应用的需求,因为1秒钟可以出发200万次这样的信号(i586-500机器,1个信号绑定一个槽函数,绑定两个1秒可以触发120万次)。
2、同一个信号与槽函数连接多次
默认情况下(Qt::AutoConnection)同一个信号和槽函数绑定几次,就会执行几次。可以使用(Qt::UniqueConnection)解决
3、多线程中发送完信号,默认不阻塞
多线程中当前线程发送信号到其他线程之后,当前线程直接往下运行,除非connect时使用Qt::BlockingQueuedConnection模式,进入阻塞等待槽函数线程返回。
4、多线程中槽函数并非实时执行
槽函数线程收到信号之后也未必立刻执行槽函数,而是当执行到检测程序,检测到队列中有信号才执行,因此多线程槽函数存在实时性风险。
5、信号发送过快,可能导致槽函数执行混乱
Qt中的信号如果触发的太快,槽这边都来不及执行完自己的任务,后面的信号又开始触发了,好像没有避免的方法,有的话欢迎留言