咱们这里肯定说的不是Qt::UniueQueue,说的是lambda为引用时,connect了多次:
// 等待操作完成 QEventLoop el; QTimer timer; disconnect(ctim); ctim = connect(&timer,&QTimer::timeout,this,[&](){ el.exit(-1); }); connect(this,&QLibUsb::sigEpxDone,&el,&QEventLoop::quit); timer.setTimerType(Qt::PreciseTimer); timer.start(3000); int rc = el.exec();
如上,因为用了引用符号&,这个connect会一直存在。方法就是用完把他disconnect掉。