其他分享
首页 > 其他分享> > QEventLoop误区

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