Название: QNetworkAccessManager::finished() перестает работать через сутки Отправлено: vbi от Сентябрь 08, 2011, 17:25 Доброго всем! Проблемка. Вешаем на таймер: Каждые 3 минуты вызывается QNetworkAccessManager::get(...). Принимает слот, который срабатывает на сигнал finished(). Все норм. Вот только через сутки QNetworkAccessManager перестает посылать сигнал finished() (это все работает в паралельном треде)
Если сигнал finished() не получался10 минут, то срабатывает перезагрузка из основной программы. В ней удаляется текущий тред и создается новый. В нем создается новый QNetworkAccessManager и т. д. Так после такой перезагрузки, сигнал finished() не отсылается сразу, и в результате через сутки нормальной работы программа начинает перезагружатся каждые 10 минут. А вот если закрыть программу ы запустить заново - все работает. Вопросы: 1) Почему менеджер через сутки перестает отправлять сигналы finished()? 2) Почему если удалить родителя менеджера и создать нового - тред так же не отправляет finished, но отправляет если программу закрыть и открыть заново. Помогите, намучался.... Название: Re: QNetworkAccessManager::finished() перестает работать через сутки Отправлено: BRE от Сентябрь 08, 2011, 18:36 А объекты QNetworkReply удаляются после обработки?
Название: Re: QNetworkAccessManager::finished() перестает работать через сутки Отправлено: vbi от Сентябрь 08, 2011, 23:04 Да, в слоте на finished(), методом deleteLater()
Название: Re: QNetworkAccessManager::finished() перестает работать через сутки Отправлено: thechicho от Сентябрь 30, 2011, 09:28 удалось решить проблему?
Название: Re: QNetworkAccessManager::finished() перестает работать через сутки Отправлено: vbi от Октябрь 21, 2011, 11:48 Ну как сказать... Недавно обновил QT SDK до самой последней версии. сейчас тестирую. Уже 3 дня висит - ни разу не перегружалось. Наверно finished() отправляется все время. Может баг в версии был. Еще повисит может на выходных, посмотрим :)
|