Russian Qt Forum

Qt => Общие вопросы => Тема начата: Vld2 от Ноябрь 05, 2006, 10:11



Название: Многопоточность
Отправлено: Vld2 от Ноябрь 05, 2006, 10:11
Создаю сотню потоков, вызываю start/run но они имеют тип void. Можно ли их переопределить, чтобы передавать параметры? Если нет, то как передать параметры в потоки?


Название: Многопоточность
Отправлено: Tonal от Ноябрь 05, 2006, 11:58
Документацию то посмотри.
Тебе надо наследника от QThread написать, в ём переопределить функцию run.
Именно в ней всё и должно делаться.
Ну а данные для выполнения должны собержаться в твоём классе.
Их ему например в конструкторе можно подать.

Да, а зачем тебе сотня потоков? ;-)


Название: Многопоточность
Отправлено: Vld2 от Ноябрь 05, 2006, 18:14
Если сотня потоков, то сто раз переопределять функцию run это не дело.  
Зачем? Порты сканить.


Название: Многопоточность
Отправлено: Tonal от Ноябрь 06, 2006, 08:32
Пишешь класс сканера - наследника QThread.
В конструктор передаёшь нужные для работы параметры.
Сохраняешь их в членах-данных.
Пишешь метод run() - который используя эти данные сканирует.
Создаёшь нужное тебе количество экземпляров с конкретными параметрами.
Запускаешь каждый с помощю start()
Наслаждаешься.

Чтобы наслаждение более было полным читаешь в assistant про QThread. ;-)