16class QFutureSynchronizer
18 Q_DISABLE_COPY(QFutureSynchronizer)
21 Q_NODISCARD_CTOR QFutureSynchronizer() : m_cancelOnWait(
false) { }
22 Q_NODISCARD_CTOR_X(
"Use future.waitForFinished() instead.")
23 explicit QFutureSynchronizer(QFuture<T> future)
24 : m_cancelOnWait(
false)
25 { addFuture(std::move(future)); }
26 ~QFutureSynchronizer() { waitForFinished(); }
28 void setFuture(QFuture<T> future)
32 addFuture(std::move(future));
35 void addFuture(QFuture<T> future)
37 m_futures.append(std::move(future));
40 void waitForFinished()
43 for (
int i = 0; i < m_futures.size(); ++i) {
44 m_futures[i].cancel();
48 for (
int i = 0; i < m_futures.size(); ++i) {
49 m_futures[i].waitForFinished();
58 QList<QFuture<T> > futures()
const
63 void setCancelOnWait(
bool enabled)
65 m_cancelOnWait = enabled;
68 bool cancelOnWait()
const
70 return m_cancelOnWait;
74 QList<QFuture<T>> m_futures;