Russian Qt Forum

Qt => Работа с сетью => Тема начата: vbi от Сентябрь 08, 2011, 17:25



Название: 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() отправляется все время. Может баг в версии был. Еще повисит может на выходных, посмотрим :)