crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> 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


фрилансер
******

Группа: Участник
Сообщений: 2886
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Нужно запрашивать источник поблочно. Каждый поток должен знать, какой блок уже получен и запрашивать ещё не тронутые блоки. Потом данные собираются в кучку (вернее, изначально под данные нужно было место выделить и собирать эту мозаику)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_AcRis_*_*
сообщение 18.7.2010, 13:06
Сообщение #4





Гости








    


Цитата(Алексей1153 @ 18.7.2010, 6:09) *
Нужно запрашивать источник поблочно. Каждый поток должен знать, какой блок уже получен и запрашивать ещё не тронутые блоки. Потом данные собираются в кучку (вернее, изначально под данные нужно было место выделить и собирать эту мозаику)

У меня есть алгоритм очереди с локерами и мьютексами. Выкладываю свой код, однако он чрезвычайно кривой, поэтому заранее извиняюсь.:)
Проект компилится, только сохраняет пустой файл с корректным названием.
Ссылка на код
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 18.7.2010, 14:56
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2886
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


AcRis, нет смысла копаться в коде (тем более, что ты сам его кривым считаешь) - распиши алгоритм в человечьем языке, а потом напиши чистый код уже по алгоритму :)
Мутексы вроде не нужны - процесс же один. А локеров в алгоритме нету (они есть в программе), поскольку локер по логике сидит в одной единственной функции, которая раздаёт задания и собирает уже принятые блоки

Сообщение отредактировал Алексей1153 - 18.7.2010, 14:58
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.9.2019, 23:51