Будет ли активирован сигнал Finish () QFutureWatcher, если задание завершено до его подключения?
Будет ли finished()
сигнал о QFutureWatcher
всегда быть уволенным, даже если одновременная работа QFuture
представляет завершено до QFutureWatcher
прикреплен к QFuture
?
Рассмотрим следующий пример:
// Start some computation.
QFuture<int> future = QtConcurrent::run(...);
// [A] At this point some time may pass where the computation might finish concurrently
// Instaciate watcher
QFutureWatcher<int> watcher;
// Instantiate an object to receive singal
MyClass myObject;
// Connect slot to watcher's finished() signal
connect(&watcher, SIGNAL(finished()), &myObject, SLOT(handleFinished()));
// Attach watcher to the future
watcher.setFuture(future);
// [B] Will the handleFinished() slot be called at this point even if the concurrent job already completed in point [A] above?
И, самое главное, если этого не произойдет, как я могу сделать handleFinished()
слот всегда будет называться в этом случае?