需求

信号槽和回调函数区别

解决

方便

信号和槽相对更加方便。

  • 回调函数和接口在每次使用的时候,都需要额外判断函数指针是否为空。
  • 当需要回调多个函数的时候,还需要管理多个函数指针。
  • 当调用和被调用中间隔了几个类,回调就会很麻烦,需要把指针一路传递过去。

速度

回调函数和接口这样直接使用的明显会更加快速,信号和槽会慢一些。曾经出现一个问题,使用信号和槽在断开连接时只打印一次,使用回调函数会打印两次,经过调试发现,使用信号和槽在调试模式也会打印两次。初步判断是信号虽然触发了两次,但是因为时间过短,所以导致只执行了一次槽函数。

参考