QNetworkManager + QThread, Многопоточное скачивание |
Здравствуйте, гость ( Вход | Регистрация )
QNetworkManager + QThread, Многопоточное скачивание |
AcRis |
17.7.2010, 22:47
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 15.5.2010 Пользователь №: 1717 Спасибо сказали: 0 раз(а) Репутация: 0 |
Пытаюсь написать многопоточное скачивание. Не могу понять принцип: что нужно засунуть в сам поток? что оставить снаружи (к примеру, QNetworkAccessManager?)? посему, если я создаю reply (QNetworkReply) в потоке, то он не испускате сигнала?
P.S. Прошу прощения за неточный вопрос, просто не могу уложить в голове, как что должно взаимодействовать. |
|
|
DIMEDROLL |
18.7.2010, 1:36
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
а ты уже написал однопоточное скачивание? как оно выглядит?
|
|
|
Алексей1153 |
18.7.2010, 6:09
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Нужно запрашивать источник поблочно. Каждый поток должен знать, какой блок уже получен и запрашивать ещё не тронутые блоки. Потом данные собираются в кучку (вернее, изначально под данные нужно было место выделить и собирать эту мозаику)
|
|
|
Гость_Гость_AcRis_*_* |
18.7.2010, 13:06
Сообщение
#4
|
Гости |
Нужно запрашивать источник поблочно. Каждый поток должен знать, какой блок уже получен и запрашивать ещё не тронутые блоки. Потом данные собираются в кучку (вернее, изначально под данные нужно было место выделить и собирать эту мозаику) У меня есть алгоритм очереди с локерами и мьютексами. Выкладываю свой код, однако он чрезвычайно кривой, поэтому заранее извиняюсь. Проект компилится, только сохраняет пустой файл с корректным названием. Ссылка на код |
|
|
Алексей1153 |
18.7.2010, 14:56
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
AcRis, нет смысла копаться в коде (тем более, что ты сам его кривым считаешь) - распиши алгоритм в человечьем языке, а потом напиши чистый код уже по алгоритму
Мутексы вроде не нужны - процесс же один. А локеров в алгоритме нету (они есть в программе), поскольку локер по логике сидит в одной единственной функции, которая раздаёт задания и собирает уже принятые блоки Сообщение отредактировал Алексей1153 - 18.7.2010, 14:58 |
|
|
Текстовая версия | Сейчас: 13.1.2025, 18:54 |