У меня возникли проблемы с тем, чтобы обернуть голову вокруг Qtimer этим утром.
Вот основная идея:
У меня есть QTimer, который запускается нажатием кнопки.Как только он активен, каждые 5 минут он вызывает функцию (давайте назовем ее start ()).
Start () вызывает отдельную функцию (назовите ее work ()), используя QtConcurrent.Таким образом, он быстро возвращается, хотя обработка все еще происходит.
Вот моя проблема: я хочу вызывать work () несколько раз, один за другим.Моя проблема в том, что в настоящее время она будет вызывать функцию work () несколько раз, прежде чем завершит обработку, которая, поскольку она взаимодействует с аппаратным обеспечением, не работает.
Как мне поступить правильно?
РЕДАКТИРОВАТЬ:
Вот основной поток программы:
- Пользователь нажимает startTimer ().
- StartTime () вызывает timer->start ()
- когда таймер издает сигнал, он вызывает Start ()
- Start () делает легкий пользовательский интерфейс, затем делает future = QtConcurrent :: run (... work() ...) // работа занимает много времени watcher-> setFuture (* future)
- как-то (это моя проблема), когда работа () завершена, я хочу вызвать ее снова (4раз, если быть точным)