Название: Применение таймера в потоке Отправлено: pethead от Ноябрь 18, 2010, 05:24 насколько я понял таймер должен запускаться в теле run (иначе ругается cannot run from another tyread), но без exec в теле run событие timeout не словится. какой смысл тогда в таймере в потоке? как применять таймер в потоке?
Название: Re: Применение таймера в потоке Отправлено: kuzulis от Ноябрь 18, 2010, 08:05 Цитировать MyThread::run { QTimer timer; connect(&timer, SIGNAL(timeout()), this, SLOT(procTimer())); exec(); } MyThread::procTimer() { //proc } Название: Re: Применение таймера в потоке Отправлено: pethead от Ноябрь 18, 2010, 12:37 ну это разово, а если надо перезапустить таймер. убивать поток и снова запускать?
а если мне в run надо запускать таймер, ждать когда сработает, и дальше продолжать. Название: Re: Применение таймера в потоке Отправлено: kuzulis от Ноябрь 18, 2010, 13:22 Цитировать ну это разово, а если надо перезапустить таймер. убивать поток и снова запускать? Код: class MyTimer : public QTimer Название: Re: Применение таймера в потоке Отправлено: pethead от Ноябрь 18, 2010, 14:18 ну т.е. это получается таймер в отдельном потоке и все. включай его выключай и получай событие.
мне надо чтобы в потоке крутилась задача в бесконечном цикле, и там применялся бы таймер для ожидания чего либо. выходит задачу надо крутить в отдельном потоке, а таймер в другом. Название: Re: Применение таймера в потоке Отправлено: alexman от Ноябрь 18, 2010, 15:07 А зачем таймер? Например, можно завести переменную обозначающую текущее состояние, прикрыть её мьютексом, а в цикле (в run) проверять значение этой переменной.
|