История изменений
Исправление aol, (текущая версия) :
Спасибо. В любом случае будет очень интересно посмотреть.
кушайте, не обляпайтесь :)
как я и говорил, если таймер будет вызываться чаще, чем поток будет успевать завершаться, ты будешь наблюдать то, что описывал в ОП.
Если ты не знаешь, сколько будет выполняться очередная задача, но следующую тебе надо запустить только после очередного таймаута таймера, то можно сделать, например, вот так:
на сигнал QTimer::timeOut
повесь отдельный слот в MainWindow
, в котором испускай сигнал, например, enqueue
и сразу делай workerTimer->stop()
. enqueue
соедини с Worker::makeResult
В слоте, принимающем инфу от Worker::resultReady
делай workerTimer->start()
или, что еще проще, использовать, в таком случае, таймер в singleShot
режиме.
Исходная версия aol, :
Спасибо. В любом случае будет очень интересно посмотреть.
кушайте, не обляпайтесь :)
как я и говорил, если таймер будет вызываться чаще, чем поток будет успевать завершаться, ты будешь наблюдать то, что описывал в ОП.
Если ты не знаешь, сколько будет выполняться очередная задача, но следующую тебе надо запустить только после очередного таймаута таймера, то можно сделать, например, вот так:
на сигнал QTimer::timeOut
повесь отдельный слот в MainWindow
, в котором испускай сигнал, например, enqueue
и сразу делай workerTimer->stop()
. enqueue
соедини с Worker::makeResult
или, что еще проще, использовать, в таком случае, таймер в singleShot
режиме.
В слоте, принимающем инфу от Worker::resultReady
делай workerTimer->start()