Название: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 16:09 Вопрос в следующем:
создаю наследника QThread, запускаю его QThread::start() и жду сигнал started(). в какой именно момент он приходит? Название: Re: QThread и сигнал started() Отправлено: BRE от Январь 15, 2010, 16:14 Перед входом в Thread::run()
Название: Re: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 16:23 и зачем он тогда, если поток еще создал ни одного локального объекта в функции run()?
допустим, там я создаю сокет, и когда поток запустится, хочу законнектиться с сервером, а сокета еще нет? Название: Re: QThread и сигнал started() Отправлено: BRE от Январь 15, 2010, 16:28 и зачем он тогда, если поток еще создал ни одного локального объекта в функции run()? Хм, уведомление о том, что сейчас заработает. :)допустим, там я создаю сокет, и когда поток запустится, хочу законнектиться с сервером, а сокета еще нет? Код Для чего ждать сигнала? Как ты планируешь обращаться к локальным объектам созданным в run из другого слота? Название: Re: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 16:31 типа того. в локальном объекте есть еще один поток, и мне нужно ждать, пока тот будет готов.
а как это: сейчас заработает. QSpinBox же не говорит, что его значение сейчас изменится... Название: Re: QThread и сигнал started() Отправлено: BRE от Январь 15, 2010, 16:40 типа того. в локальном объекте есть еще один поток, и мне нужно ждать, пока тот будет готов. Добавь свой сигнал или используй какой нибудь флажок.а как это: сейчас заработает. QSpinBox же не говорит, что его значение сейчас изменится... Это мое предположение. :) Для каких целей ты будешь его использовать (и будешь ли?) зависит уже от тебя.Название: Re: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 16:51 я в run() создаю локальный объект с относительно большим и тугим конструктором, потом делаю connectы. ожидалось, что сигнал started() будет эмитится только в момент начала цикла обработки событий exec(). а получается, что я буду пытаться работать с объектом либо до connect(), либо вообще пока он еще недоконструирован...
флажки не помогут. ждать по таймеру - :o :o :o я в тупике... Название: Re: QThread и сигнал started() Отправлено: Vass от Январь 15, 2010, 16:55 Если в локальном объекте есть еще один поток почему бы не взять сигнал started() от этого локального потока?
Название: Re: QThread и сигнал started() Отправлено: BRE от Январь 15, 2010, 16:56 Расскажи подробней (желательно с кодом), где что создается и запускается. А то не очень понятно.
Название: Re: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 17:10 Если в локальном объекте есть еще один поток почему бы не взять сигнал started() от этого локального потока? ну да, а этот сигнал в свою очередь будет эмитирован до создания внутренних объектов "еще одного поток" и т.д. :)а что, если я перед exec() выдам свой сигнал threadStarted(), будет ли это корректно? Название: Re: QThread и сигнал started() Отправлено: BRE от Январь 15, 2010, 17:14 а что, если я перед exec() выдам свой сигнал threadStarted(), будет ли это корректно? Будет.Но интересны подробности, возможно получиться сделать и без него. Название: Re: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 17:16 подробности вечером.
буду вырезать, т.к. много букаф ;) Название: Re: QThread и сигнал started() Отправлено: ilyagoo от Январь 15, 2010, 21:02 короче, я подумал и решил, что это вполне катит, т.к. сигналы локальный объект получит, а его сигналы будут эмитироваться в ответ:
Код: class TObj : public QThread спасибо за участие :) |