Как можно делать временные задержки во втором потоке?

Вопрос для меня насущный. Приходится создавать программы для управления внешними датчиками и реле. Как все мы знает управлять нужно циклически с заданными интервалами времени. Если все это управление запихивать в главный поток и по таймеру вызывать то начинает тормозить GUI. Приходится создавать второй поток и в нем управлять. Но как правильно во втором потоке задавать временные интервалы ?

while(true)
{
//управление
//задержка
//..
}

Ответы (1 шт):

Автор решения: gbg

Судя по всему, вы второй поток создаете не средствами Qt(или делаете это неверно). Верный способ подразумевает перемещение объекта в другой поток управления moveToThread().

QThread* thrd = new QThread();
myObject -> moveToThread(thrd);
thrd->start();

После чего, уже в этом объекте можно без проблем насоздавать таймеров.

→ Ссылка