QTimer 在connect timeout 信号和槽时, Qt::ConnectionType type 参数的用处
各位大侠,想请问下,在GUI线程里使用定时器QTimer时;其connect方式不同如下:
connect( timer, SIGNAL(timeout()), this, SLOT(updateUI()) ,Qt::QueuedConnection);
和 connect( timer, SIGNAL(timeout()), this, SLOT(updateUI()), Qt::DirectConnection);
这两者的区别是什么?
我的理解是,
第一种方式,当超时信号到达时,updateUI 会被放入gui线程的事件循环里,等程序返回事件循环时才真正去执行updateUI ;
第二种方式,当超时信号到达时,updateUI 会直接被调用;
不知道这样的理解是否有误?请大家指正
如果是这样理解的话,那是不是跟使用 QBasicTimer 里然后重载 QObject::timerEvent() 差不多了?只是可能 QBasicTimer 的效率会更高些。