Название: ожидание окончания запуска потока Отправлено: Paul от Август 17, 2011, 15:41 Добрый день, коллеги. Есть вопрос по потокам: для работы клиента создал объект, к-ый использует 3 дочерних потока (приёмник, обработчик и передатчик), которые создаются и стартуют в конструкторе объекта. Чтобы рабочие данные принадлежали самим потокам, их создание и cоnnect-ы определены в run(). Если в главной прог-е создание и выполнение
1-ой операции выполнить без задержки, то "дочки-поточки" не успевают "разогнаться" полностью, т.к. start() только запускает run() и не ждёт его выполнения, что понятно (если exec(), то не дождёшься). НУЖНА ПАУЗА !!! Я по своей малости знания QT решил задачку так: разделил создание и выполнение 1-ой операции на две функции, в конце 1-ой (после создания объекта в окне) выполнил QTimer::singleShot(500, this, SLOT(executOper())); где, как легко догадаться executOper() - выполнение операции. С моей колокольни - как-то коряво. Так и хочется после start() написать wait(), но для какого потока ??? У меня не получилось. Поделитесь пожалуйста знаниями. С уважением, Paul Название: Re: ожидание окончания запуска потока Отправлено: Странник от Август 17, 2011, 15:52 совершенно не понял смысла вашего сообщения. если вам нужно узнать, когда реально запустился поток - сигнал QThread::started() вам в помощь, по завершении работы потока высылается сигнал QThread::finished().
Название: Re: ожидание окончания запуска потока Отправлено: LisandreL от Август 17, 2011, 15:57 Да, уточните чего именно вы хотите дождаться. Лучше с примером своего кода.
Название: Re: ожидание окончания запуска потока Отправлено: Paul от Август 18, 2011, 14:52 Добрый день, коллеги. Извините, но вчера, в конторе накрылось электричество и по-этому
возникла пауза. Мне надо дождаться момента запуска потока (начало работы exec ???). Предполагал такой код: Tmy_Thread *my_Thread=new Tmy_Thread(); my_Thread->start(); while(!my_Thread->isRunning()) { какой-то wait !!! какой ??? } С уважением, Paul Название: Re: ожидание окончания запуска потока Отправлено: LisandreL от Август 18, 2011, 16:32 Код
Название: Re: ожидание окончания запуска потока Отправлено: Paul от Август 29, 2011, 20:07 Спасибо, LisandreL, и удачи Вам.
С уважением, Paul |