LINUX.ORG.RU

История изменений

Исправление 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()