Russian Qt Forum

Qt => Общие вопросы => Тема начата: nkly777 от Февраль 14, 2007, 10:11



Название: Прерывание беконечного цикла
Отправлено: nkly777 от Февраль 14, 2007, 10:11
У меня в приложении в потоке запускается бесконечный цикл, который должен прерваться либо при получении определенного символа, либо (если этот символ так и не будет получен), по прошествии определенного времени.
По пришествии символа цикл прерывается, это я сделал, а вот второе условие не получается. Пробовал с использованием QTimer::singleShot и Qtimer timer и затем timer.start(10000) не работает. Вернее если без бесконечного цикла то вроде работает.
Как это можно реализовать?


Название: Прерывание беконечного цикла
Отправлено: Вудруф от Февраль 14, 2007, 12:55
processEvents?


Название: Прерывание беконечного цикла
Отправлено: Sergeich от Февраль 14, 2007, 13:43
Неудивительно что это не работает :) QTimer использует событийный механизм, а очередь событий не будет обрабатываться пока ты не выйдешь из цикла. Юзай QTime::start  и QTime::elapsed() и будет тебе счастье.


Название: Прерывание беконечного цикла
Отправлено: nkly777 от Февраль 14, 2007, 15:17
Спасибо to Sergeich все получилось.