Название: QNetworkManager внутри QtConcurrent:map Отправлено: rudireg от Май 09, 2020, 10:36 Привет.
Имеем класс Worker который унаследован от QObject в котором идет работа с QNetworkAccessManager Так же есть класс Master который запускает работу Worker через вызов QtConcurrent:map Заметил такую ситуацию, что я не получаю ответ от QNetworkAccessManager через сигнал QNetworkReply::readyRead Но... стоит мне внутри метода Worker реализовать QEventLoop Код: QNetworkReply *reply = this->manager->get(request); Выходит, из этой документации https://doc.qt.io/qt-5/threads-technologies.html Только QThread способен на Thread can run an event loop То есть внутри потока, (созданный QtConcurrent:map) нет цикла обработки событий без моего QEventLoop и поток просто уничтожается по достижении конца метода... Походу для моего случая лучше испольлзовать moveToThread Название: Re: QNetworkManager внутри QtConcurrent:map Отправлено: Авварон от Май 09, 2020, 16:06 QNAM уже использует треды внутри, нет никакой нужды его параллелить снаружи.
Название: Re: QNetworkManager внутри QtConcurrent:map Отправлено: rudireg от Май 09, 2020, 16:14 QNAM уже использует треды внутри, нет никакой нужды его параллелить снаружи. В моем случае есть нужда, использование QNAM это лишь верхушка айсберга. Логика подразумевает неоднократный вызов QNAM и обработка его ответа, запросы разные, и на обработку каждого ответа своя логика...Название: Re: QNetworkManager внутри QtConcurrent:map Отправлено: Пантер от Май 15, 2020, 20:01 QNAM по умолчанию создает 6 потоков под свои нужды. Как было сказано выше, не надо его совать еще в один поток.
|