Будет ли активирован сигнал Finish () QFutureWatcher, если задание завершено до его подключения? - PullRequest
0 голосов
/ 24 мая 2018

Будет ли всегда срабатывать сигнал 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() всегда вызывался в этом случае?

...