QEventLoop误区
作者:互联网
1.问题描述
伪代码如下:
QEventLoop eventLoop;
QObject::connect(this, &Class::signal, [](){
doSomething();
eventLoop.exit(0);
});
emit signal();
eventLoop.exec();
在执行eventLoop.exec()时,造成永不退出。
2.原因分析
本打算在,槽函数中执行doSomething()后,再继续执行。但是在signal发出后,先执行了槽函数中的exit(0)函数,后面的eventLoop.exec()随后执行,但此时已经没有exit()来终止eventLoop了,造成后面的代码永远也不会执行。
切记:在exec()后再执行exit()!
标签:exec,signal,eventLoop,QEventLoop,exit,误区,执行 来源: https://blog.csdn.net/u014746838/article/details/98740879