QFutureSynchronizer Class
template <typename T> class QFutureSynchronizerQFutureSynchronizer クラスは、QFuture の同期処理を簡略化する便利なクラスです。詳細...
| ヘッダー: | #include <QFutureSynchronizer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- QFutureSynchronizerはスレッド関連クラスの一部です。
パブリック関数
| 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 はテンプレートクラスであり、テンプレートパラメータT は、同期されるQFuture オブジェクトの結果型を指定します。QFutureSynchronizer は、1 つまたは複数のQFuture オブジェクトの同期を簡略化します。 フューチャーは、addFuture() またはsetFuture() 関数を使用して追加されます。futures() 関数は、フューチャーのリストを返します。clearFutures() を使用して、QFutureSynchronizer からすべてのフューチャーを削除します。
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()関数を使用して、キャンセル・オン・ウェイト機能の状態を照会できます。
QFuture 、QFutureWatcher 、および 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 がtrueの場合、waitForFinished()関数は、フューチャーの完了を待つ前に、すべてのフューチャーをキャンセルします。
cancelOnWait() およびwaitForFinished()も参照してください 。
void QFutureSynchronizer::setFuture(QFuture<T> future)
future を、このQFutureSynchronizer が管理する唯一のフューチャーとして設定します。これは、waitForFinished() を呼び出し、次にclearFutures() を呼び出し、最後にfuture をaddFuture() に渡すという一連の処理を行う、利便性を高めるための関数です。
addFuture()、waitForFinished()、およびclearFutures()も参照してください 。
void QFutureSynchronizer::waitForFinished()
すべてのフューチャーが完了するのを待ちます。cancelOnWait() がtrue を返した場合、各フューチャーは完了を待つ前にキャンセルされます。
cancelOnWait() およびsetCancelOnWait()も参照してください 。
© 2026 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.