Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: phpCoder от Май 13, 2015, 12:15



Название: Нужно ли использовать нитки?
Отправлено: phpCoder от Май 13, 2015, 12:15
Добрый день.
Есть класс, который загружает файлы на FTP. Задача эта очень долгая по времени. И порой нужно взять и остановить работу (совсем завершить или нажать на паузу). Вопрос: нужно ли тут использовать нитки? И если нужно, то как?
До сего момента с потоками не работал.

Если не сложно, можно пример того, как запускать, ставить паузу и останавливать, чтобы потом от этого отталкиваться.


Название: Re: Нужно ли использовать нитки?
Отправлено: Пантер от Май 13, 2015, 12:20
Если будешь качать ассинхронно, то не надо никаких потоков.


Название: Re: Нужно ли использовать нитки?
Отправлено: phpCoder от Май 13, 2015, 12:38
Кроме FTP есть похожие длительные задачи. И тут интересует именно - запуск, пауза, завершение.


Название: Re: Нужно ли использовать нитки?
Отправлено: Old от Май 13, 2015, 12:50
Вопрос: нужно ли тут использовать нитки?
Нитки нужны для параллельного выполнения.

Для этого:
Есть класс, который загружает файлы на FTP. Задача эта очень долгая по времени. И порой нужно взять и остановить работу (совсем завершить или нажать на паузу).

они не обязательны. Но при желании их туда можно воткнуть. :)


Название: Re: Нужно ли использовать нитки?
Отправлено: phpCoder от Май 13, 2015, 12:53
Хорошо, если нитки тут не нужны (не только FTP), тогда как делать паузу выполнения. И завершение как?

Вон, когда отлаживаем приложение в Qt - там на красный квадратик нажал, и приложение завершилось.


Название: Re: Нужно ли использовать нитки?
Отправлено: Old от Май 13, 2015, 12:55
Хорошо, если нитки тут не нужны (не только FTP), тогда как делать паузу выполнения. И завершение как?

Вон, когда отлаживаем приложение в Qt - там на красный квадратик нажал, и приложение завершилось.
Это шуточный вопрос?

Сделайте и у себя в приложении красный квадратик. ;)


Название: Re: Нужно ли использовать нитки?
Отправлено: Bepec от Май 13, 2015, 13:22
И код красного квадратика выложите, меня тоже заинтересовало.


Название: Re: Нужно ли использовать нитки?
Отправлено: Пантер от Май 13, 2015, 13:26
Вот синий не срабатывает, а красный сразу останавливает. Сам видел.


Название: Re: Нужно ли использовать нитки?
Отправлено: qate от Май 13, 2015, 13:57
http://qt-project.org/wiki/Threads_Events_QObjects

команды (пауза, стоп, ...) между потоками кидай сигналами\слотами


Название: Re: Нужно ли использовать нитки?
Отправлено: phpCoder от Май 13, 2015, 14:19
Так все-таки потоки использовать?


Название: Re: Нужно ли использовать нитки?
Отправлено: Old от Май 13, 2015, 14:43
Так все-таки потоки использовать?
Киньте монетку. :)

Вы спрашиваете "использовать"? А мы понятия не имеем, какие задачи вы собераетесь решать.
Было ваше уточнение про загрузку файла, вам сразу ответили, что для этого нитки не нужны. А что можно сказать про "другие длительные задачи" и "как поставить им паузу"?


Название: Re: Нужно ли использовать нитки?
Отправлено: Igors от Май 13, 2015, 14:48
Так все-таки потоки использовать?
Не знаю подробностей FTP, но при I/O использование 2 и более ниток часто малоэффективно, и тратить на него время не стоит. Скорость все равно упирается в устройство, др словами ядрам нечего делать когда все льется в одну дырочку (ну или выливается). Вот если есть еще какая-то приличная обработка - тогда др дело