Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QNetworkAccessManager and threads



  • Доброго времени суток.

    Есть main тред, в котором и создан QNetworkAccessManager. Есть еще N тредов, из которых нужно отправлять запросы. Из другого треда нельзя посылать запрос в NAM, пушо оно не может создать QNetworkReply (тред парента не совпадает с текущим). В других тредах мне нельзя создавать еще один NAM, т.к я постоянно делаю msleep (нужно, чтобы сообщения отправлялись через малый интервал времени, другого решения этого не нашел), и по этому работа NAM (и ответов на запросы) будет очень медленной, а это плохо.
    Собственно что в этом случае делать? Единтсвенное, что приходит в голову, это эмитить сигналы из треда в main тред, чтобы тот уже отпрвил сообщение. Но уж больно это не красиво...



  • Другого варианта не знаю. Сам так делаю. Сабкласс QNAM с кастомными слотами и всё. Оверхед не так уж и велик если главный класс не гуй.



  • Пришлось таки делать NAM для каждого из тредов (благо куки передаются).


Log in to reply