Коды после exec () в потоке Qt не реализованы - PullRequest
0 голосов
/ 07 марта 2019

Я нахожу в теле кода функции run() для потока, коды, следующие за exec() (https://doc.qt.io/qt-5/qapplication.html#exec), не будут реализованы, пока приложение не будет закрыто. Например:

myClass::run()
{
   qDebug()<<"Before exec()";

   //do some work, e.g., signal-slot connections based on a QTimer object

   exec();

   qDebug()<<"After exec()"; //this piece of code is implemented only after the application is quitted. 

}

Интересно, является ли это наблюдение общим или только применимым к определенным случаям? Кто-нибудь может объяснить это для меня? Благодарю.

1 Ответ

0 голосов
/ 07 марта 2019

Согласно Qt doc (https://doc.qt.io/qt-5/qthread.html#exec), exec() означает вход в цикл обработки событий и ожидание вызова exit (). Возможно, поэтому коды, следующие за exec(), реализуются после выхода из приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...