Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 18.7.2010, 14:56 |
AcRis, нет смысла копаться в коде (тем более, что ты сам его кривым считаешь) - распиши алгоритм в человечьем языке, а потом напиши чистый код уже по алгоритму ![]() Мутексы вроде не нужны - процесс же один. А локеров в алгоритме нету (они есть в программе), поскольку локер по логике сидит в одной единственной функции, которая раздаёт задания и собирает уже принятые блоки |
|
Гость_AcRis_* | Дата 18.7.2010, 13:06 |
Нужно запрашивать источник поблочно. Каждый поток должен знать, какой блок уже получен и запрашивать ещё не тронутые блоки. Потом данные собираются в кучку (вернее, изначально под данные нужно было место выделить и собирать эту мозаику) У меня есть алгоритм очереди с локерами и мьютексами. Выкладываю свой код, однако он чрезвычайно кривой, поэтому заранее извиняюсь. ![]() Проект компилится, только сохраняет пустой файл с корректным названием. Ссылка на код |
|
Алексей1153 | Дата 18.7.2010, 6:09 |
Нужно запрашивать источник поблочно. Каждый поток должен знать, какой блок уже получен и запрашивать ещё не тронутые блоки. Потом данные собираются в кучку (вернее, изначально под данные нужно было место выделить и собирать эту мозаику) | |
DIMEDROLL | Дата 18.7.2010, 1:36 |
а ты уже написал однопоточное скачивание? как оно выглядит? | |
AcRis | Дата 17.7.2010, 22:47 |
Пытаюсь написать многопоточное скачивание. Не могу понять принцип: что нужно засунуть в сам поток? что оставить снаружи (к примеру, QNetworkAccessManager?)? посему, если я создаю reply (QNetworkReply) в потоке, то он не испускате сигнала? P.S. Прошу прощения за неточный вопрос, просто не могу уложить в голове, как что должно взаимодействовать. |
|
Просмотр темы полностью (откроется в новом окне) | |
![]() |
Текстовая версия | Сейчас: 3.12.2023, 8:10 |