Я пишу приложение Qt, и у меня есть четырехчасовой цикл (в отдельном потоке).В этом четырехчасовом цикле я должен:
- делать вещи с последовательным портом;
- ждать фиксированный период времени;
- делать еще кое-что споследовательный порт;
- ждать произвольное количество времени.
- по прошествии 500 мсек делать больше вещей;
- Перейти к 1. и повторить в течение четырех часов.
В настоящее время мой способ сделать это очень плох, и некоторые компьютеры зависают.У меня есть целая куча кода, но следующий фрагмент в основном показывает проблему.Процессор уходит на ~ 100% и в конечном итоге может привести к сбою компьютера.
void CRelayduinoUserControl::wait(int timeMS)
{
int curTime = loopTimer->elapsed();
while(loopTimer->elapsed() < curTime + timeMS);
}
Мне нужно как-то подождать некоторое время, прежде чем продолжить работу с программой.Есть ли какая-нибудь функция, которая будет просто ждать некоторый произвольный период времени, сохраняя при этом все таймеры?