QFutureSynchronizer Class

template <typename T> class QFutureSynchronizer

QFutureSynchronizerクラスは、QFuture 同期を簡素化する便利なクラスです。詳細...

ヘッダー #include <QFutureSynchronizer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック関数

QFutureSynchronizer()
QFutureSynchronizer(QFuture<T> future)
~QFutureSynchronizer()
void addFuture(QFuture<T> future)
bool cancelOnWait() const
void clearFutures()
QList<QFuture<T>> futures() const
void setCancelOnWait(bool enabled)
void setFuture(QFuture<T> future)
void waitForFinished()

詳細説明

QFutureSynchronizer は、1 つ以上のQFuture オブジェクトの同期を簡素化するテンプレート・クラスです。フューチャーはaddFuture() またはsetFuture() 関数を使用して追加します。futures() 関数は先物のリストを返します。QFutureSynchronizer からすべてのフューチャを削除するには、clearFutures() を使用します。

waitForFinished() 関数は、すべてのフューチャが終了するまで待機します。QFutureSynchronizer のデストラクタはwaitForFinished() を呼び出すので、関数から戻る前にすべてのフューチャが終了したことを簡単に確認できます:

void someFunction()
{
    QFutureSynchronizer<void> synchronizer;

    ...

    synchronizer.addFuture(QtConcurrent::run(anotherFunction));
    synchronizer.addFuture(QtConcurrent::map(list, mapFunction));

    return; // QFutureSynchronizer waits for all futures to finish
}

waitForFinished ()の動作は、setCancelOnWait ()関数を使用して変更できます。setCancelOnWait (true)を呼び出すと、waitForFinished ()は、すべてのフューチャーが終了するのを待つ前に、すべてのフューチャーをキャンセルします。キャンセル・オン・ウェイト機能の状態は、cancelOnWait() 関数を使用して確認できます。

QFutureQFutureWatcher 、および Qt Concurrent.

メンバ関数ドキュメント

QFutureSynchronizer::QFutureSynchronizer()

QFutureSynchronizer を構築します。

[explicit] QFutureSynchronizer::QFutureSynchronizer(QFuture<T> future)

QFutureSynchronizer を構築し、addFuture() を呼び出してfuture の監視を開始する。

addFuture()も参照してください

QFutureSynchronizer::~QFutureSynchronizer()

QFutureSynchronizer を破棄する前に、すべての先物が終了したことを確認するためにwaitForFinished() 関数を呼び出す。

waitForFinished()も参照

void QFutureSynchronizer::addFuture(QFuture<T> future)

future を管理先物のリストに追加する。

futures()も参照

bool QFutureSynchronizer::cancelOnWait() const

cancel-on-wait 機能が有効な場合はtrue を返し、そうでない場合は false を返す。cancel-on-waitが有効な場合、waitForFinished()関数は、すべての先物の終了を待つ前にキャンセルする。

setCancelOnWait() およびwaitForFinished()も参照のこと

void QFutureSynchronizer::clearFutures()

このQFutureSynchronizer からすべてのマネージド・フューチャーを削除する。

addFuture() およびsetFuture()も参照

QList<QFuture<T>> QFutureSynchronizer::futures() const

管理されているすべての先物のリストを返す。

addFuture() およびsetFuture()も参照

void QFutureSynchronizer::setCancelOnWait(bool enabled)

enabled 引数に基づいて、キャンセル・オン・ウェイト機能を有効または無効にする。enabled が真の場合、waitForFinished() 関数は、すべての先物の終了を待つ前にキャンセルする。

cancelOnWait() およびwaitForFinished()も参照

void QFutureSynchronizer::setFuture(QFuture<T> future)

このQFutureSynchronizer が管理する唯一の未来としてfuture を設定する。これは便利な関数で、waitForFinished() を呼び出し、次にclearFutures() を呼び出し、最後にfutureaddFuture() に渡す。

addFuture()、waitForFinished()、clearFutures()も参照

void QFutureSynchronizer::waitForFinished()

すべてのフューチャーの終了を待つ。cancelOnWait() がtrue を返す場合、各フューチャーは終了を待つ前にキャンセルされる。

cancelOnWait() およびsetCancelOnWait()も参照のこと

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.