Название: QThread и QNetworkRequestManager Отправлено: WILY от Январь 28, 2016, 16:48 Всем доброго дня!
У меня вопрос! Я хочу качать обновление с сервера в параллельном потоке, и тут притаилось черепашье "но". Он говорит что я пытаюсь с потоками мудить. update.h Код
Updater.cpp Код
updatethread.h Код
updatethread.cpp Код
Бросается вот такими ошибками QObject: Cannot create children for a parent that is in a different thread. (Parent is QNetworkAccessManager(0x3e9620), parent's thread is QThread(0x3e52e0), current thread is updateThread(0x22fe7c) Хочу понять, если QNetworkRequestManager выводится в новом потоке, то почему программа подвисает и перестает реагировать, если нет, то почему выкидывает ошибочки. Всем спасибо! Название: Re: QThread и QNetworkRequestManager Отправлено: ksk- от Январь 29, 2016, 07:21 Напрасно ты наследуешься от QThread. Да и пытаться вынести QNetworkAccessManager тоже смысла большого нет. Да и вообще всё неправильно!
Название: Re: QThread и QNetworkRequestManager Отправлено: torwig от Январь 29, 2016, 09:21 Попробуйте создавать QNetworkAccessManager и т.п. не в конструкторе, а в методе run().
Загружает оно асинхронно, поэтому и без отдельного потока можно было. - наверное об этом хотел написать человек выше. Название: Re: QThread и QNetworkRequestManager Отправлено: WILY от Январь 29, 2016, 09:59 Всем доброго утра! )
Я читал что QNetworkAccessManager работает асинхронно, но у меня тогда возникает резонный вопрос, почему во время загрузки файла окно становится неактивным и не отвечает на любые действия. Название: Re: QThread и QNetworkRequestManager Отправлено: ksk- от Январь 29, 2016, 10:45 Всем доброго утра! ) Я читал что QNetworkAccessManager работает асинхронно, но у меня тогда возникает резонный вопрос, почему во время загрузки файла окно становится неактивным и не отвечает на любые действия. Всё будет зависеть от того, как ты сохраняешь данные. Судя по коду выше (метод "slot_netwManagerFinished"), ты пытаешься записать все загруженные данные разом. Скорее всего, именно этот метод блокирует UI. Название: Re: QThread и QNetworkRequestManager Отправлено: WILY от Январь 29, 2016, 10:49 Я так понимаю что он вызывает метод записи в файл после завершения загрузки всех пакетов. А UI блокируется уже во время загрузки
|