Название: aboutToQuit() отловить в дочерем потоке Отправлено: RedDog от Июнь 07, 2011, 13:32 Необходимо до выхода из приложения завершить в объекте, который создается в дочернем потоке, некоторые операции (запись состояния в файл).
при созданнии объекта в дочернем потоке, сединяю aboutToQuit() со своим слотом: Код: NetworkConnection::NetworkConnection(QObject *parent) : Как корректно убить поток, что бы завершились все предварительные действия? PS: в самом классе потока есть обработчик сигнала complete(bool, qint64), но до вызова этого сигнала так и не доходит. Название: Re: aboutToQuit() отловить в дочерем потоке Отправлено: Авварон от Июнь 07, 2011, 17:41 естессно, qApp не будет ждать другой поток. Можно повесить хэндлер в глав потоке, к-ый будет делать wait() дочернего. Еще можно в деструкторе треда wait() сделать
Название: Re: aboutToQuit() отловить в дочерем потоке Отправлено: RedDog от Июнь 07, 2011, 22:48 решил немного через зад... в общем шлю в поток сигнал, на который в теле объекта, работающего в потоке стоит qApp->quit(); т.к. поток дочерний один, то синхронизировать особо нечего и при таком выходе ничего не валится (пока, дальше посмотрим, потестим).
Название: Re: aboutToQuit() отловить в дочерем потоке Отправлено: Авварон от Июнь 08, 2011, 16:08 А, и не будет, уболтали, это СТАТИК слот%). Но не делайте так больше. |