Здравствуйте, гость ( Вход | Регистрация )
| Гость_me_* |
17.2.2009, 23:03
Сообщение
#1
|
|
Гости |
Доброго времени суток..
Не так давно начал разбираться с взаимодействием потоков в qt и осознал что оч мощно запутался. Есть задача: написать многопотоный ftp клиент который парсит файлик с заданиями и закачивает с разных ftp ресурсов файлы. Многопоточный просто для того чтобы самому в этом хорошенько разобраться. Решил организовать это следующим образом на каждое задание создаётся поток и далее вся работа через QFtp. Насколько я понял QFtp асинхронный, а так как мне требуется помимо непосредственно работы с ftp в этом же потоке обрабатывать некоторые действия со скачанными файлами то требуется вынести это в соотвествующие слоты. Не понятно мне стало вот что: - насколько я понимаю слоты прикреплённые к соотвествующим сигналам из Qftp НЕ будет выполнятся до тех пор пока не будет вызван exec в потоке? Но тогда я так понима.ю мне придётся как минимум обращаться к потоку из главного потока дважды. Первый раз на старт потока а второй на запуск задания (просто слот с перечнем комманд на коннект и на скачку) - получается что всю работу с ftp надо будет полностью выносить в отдельные слоты, что видится мне несколько грамоздким. Вообщем требуется квалифицированная помощь))) з.ы. Заранее хочу сказать, что листал книги по qt, читал документацию, но разобрался не во всём и эти моменты для меня туманны, так что просьба к великому гуглу не отсылать))) з.з.ы Какой-нибудь простенький пример будет оч кстати.. ток главный смысл в том что программа будет автоматизированна и без участие человека и без гуи... так что явный инициатор QFtp c точки зрения запуска заданий отсуствует.. Заранее спасибо! |
|
|
|
![]() |
|
Константин |
18.2.2009, 14:46
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1
|
Гость_me_*,
для испускания сигналов петля событий не нужна. т.е. вообще. петля событий потоку необходима, если в этом потоке требуется асинхронно выполнять слоты. твоя задача решается довольно просто, если разобраться со взаимодействием потоков в кутэ. /* хотел привести ссылку на почитать, но не нашёл ( */ |
|
|
|
me Exec threads etc... 17.2.2009, 23:03
ViGOur Работу с FTP не нужно выносить в отдельные слоты.
... 17.2.2009, 23:36
me Цитата(ViGOur @ 17.2.2009, 23:36) А тепер... 18.2.2009, 0:17
SABROG Цитата(Гость_me_* @ 18.2.2009, 0:17) Скаж... 18.2.2009, 0:37
me Цитата(SABROG @ 18.2.2009, 0:37) Цитата(Г... 18.2.2009, 1:01
SABROG Цитата(Гость_me_* @ 18.2.2009, 1:01) Эмм.... 18.2.2009, 1:39
me Цитата(SABROG @ 18.2.2009, 1:39) Что тако... 18.2.2009, 9:16
SABROG Это из-за того, что QAbstrackSocket не блокирующий... 18.2.2009, 9:38
me Цитата(SABROG @ 18.2.2009, 9:38) Это из-з... 18.2.2009, 9:51
me Цитата(Константин @ 18.2.2009, 14:46) Гос... 18.2.2009, 15:14
SABROG Цитата(Гость_me_* @ 18.2.2009, 9:51) Эх..... 18.2.2009, 14:58
SABROG Цитата(Гость_me_* @ 18.2.2009, 15:14) Так... 18.2.2009, 15:45
me Цитата(SABROG @ 18.2.2009, 15:45) Таким о... 18.2.2009, 16:35
Константин по всей видимости, тут ещё имеют место проблемы с ... 18.2.2009, 16:35
me Цитата(Константин @ 18.2.2009, 16:35) по ... 18.2.2009, 16:42
me не забыв конечнео же сделать connectы всё какие ну... 18.2.2009, 16:43
me ЦитатаКлассы QHttp и QFtp предоставляют поддержку ... 18.2.2009, 16:48
Константин Цитата(Гость_me_* @ 18.2.2009, 16:42) а д... 18.2.2009, 16:49
me Всем спасибо! Тему я думаю на этом закрыть мож... 18.2.2009, 17:41
Константин Цитата(Гость_me_* @ 18.2.2009, 17:41) Все... 18.2.2009, 18:02
me В продолжение этой темы.. как-то всё не доходили р... 2.3.2009, 16:35
me Забыл вырезать из вывода QFtp(0x80564b0) - эт я р... 2.3.2009, 17:49
SABROG Рекомендация по поводу использования NULL: http://... 2.3.2009, 17:47
me Последовательность ID действительно одна для всех ... 2.3.2009, 18:20![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 14:20 |