![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
DrWebber |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 9.5.2012 Пользователь №: 3370 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет. Возник вопрос как правильно организовать обработку данных в разных потоках?
Есть вот такой класс(схематично):
Экземпляров этого класса может быть....ну допустим 10. Я понимаю, что рекомендуется использовать 1 QNetworkAccessManager в приложении, но мне нужно чтобы запросы отправлялись через разные прокси. Так же есть класс-генератор запросов, который вызывает функции sendGET и sendPOST, он работает в отдельном потоке QThread. Мне нужно чтобы данные, которые приходят в replyFinished обрабатывались параллельно, т.е. в данном случае в 10 потоков. Я пробовал создавать для каждого Requester свой QThread, но тогда я не мог вызывать из другого потока функции sendGET и sendPOST, вываливалось вот такое сообщение:
Создавал вот так:
Когда так делал, класс Requester выглядел немного по-другому - вся инициализация была в функции startInThread(). Собственно вопрос: как такое правильно реализовать? |
|
|
![]() |
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
А зачем вообще треды? Создайте 10 экземпляров в одном потоке.
QnetworkAccessManager работает асинхронно, поэтому проблем никаких не будет. В этом же потоке обрабатывайте данные по мере поступления. |
|
|
DrWebber |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 9.5.2012 Пользователь №: 3370 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А зачем вообще треды? Создайте 10 экземпляров в одном потоке. QnetworkAccessManager работает асинхронно, поэтому проблем никаких не будет. В этом же потоке обрабатывайте данные по мере поступления. В том-то и дело, что мне нужно чтобы данные обрабатывались в разных потоках, это существенно существенно увеличит производительность. Хоть QnetworkAccessManager и работает асинхронно, ответы все равно будут обрабатываться последовательно, а меня это не устраивает. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.4.2025, 2:32 |