QRunnable Class
QRunnableクラスは、すべての実行可能オブジェクトの基本クラスです。さらに...
ヘッダー | #include <QRunnable> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承されたメンバーを含む全メンバーのリスト
- QRunnableはスレッドクラスに属しています。
パブリック関数
QRunnable() | |
virtual | ~QRunnable() |
bool | autoDelete() const |
virtual void | run() = 0 |
void | setAutoDelete(bool autoDelete) |
静的パブリックメンバー
QRunnable * | create(Callable &&callableToRun) |
詳細説明
QRunnable クラスは、run() 関数の再実装によって表される、実行が必要なタスクやコードの一部を表すためのインターフェイスです。
QThreadPool を使用すると、コードを別のスレッドで実行できます。autoDelete() がtrue
(デフォルト) を返した場合、QThreadPool は QRunnable を自動的に削除します。自動削除フラグを変更するにはsetAutoDelete() を使用します。
QThreadPool run() 関数内から (this) を呼び出すことで、同じ QRunnable を複数回実行できます。 を有効にすると、最後のスレッドが run 関数を終了したときに QRunnable が削除されます。 が有効になっているときに、同じ QRunnable を使用して () を複数回呼び出すと、競合状態が発生するためお勧めできません。QThreadPool::tryStart autoDelete autoDelete QThreadPool::start
QThreadPoolも参照してください 。
メンバ関数ドキュメント
[constexpr noexcept]
QRunnable::QRunnable()
QRunnableを構築する。デフォルトでは自動削除が有効になっています。
autoDelete() およびsetAutoDelete()も参照してください 。
[virtual noexcept]
QRunnable::~QRunnable()
QRunnable 仮想デストラクタ。
bool QRunnable::autoDelete() const
自動削除が有効な場合はtrue
を返し、そうでない場合は false を返す。
自動削除が有効な場合、run() を呼び出した後、QThreadPool は自動的にこの runnable を削除する。そうでない場合、所有権はアプリケーションプログラマにある。
そうでない場合は、 所有権はアプリケーション・プログラマにある。setAutoDelete() およびQThreadPoolも参照のこと 。
[static]
template <typename Callable, QRunnable::if_callable<Callable> = true> QRunnable *QRunnable::create(Callable &&callableToRun)
run() 内でcallableToRun を呼び出すQRunnable を作成する。
デフォルトでは自動削除が有効になっています。
注意: この関数は、Callable
が引数ゼロで呼び出せる関数または関数オブジェクトである場合にのみ、オーバーロードの解決に参加します。
注意 : Qt 6.6 より前のバージョンでは、このメソッドはコピー可能な関数のみを取りました。
run() およびautoDelete()も参照してください 。
[pure virtual]
void QRunnable::run()
この純粋仮想関数をサブクラスで実装する。
void QRunnable::setAutoDelete(bool autoDelete)
autoDelete が真の場合、自動削除を有効にする。そうでない場合、自動削除は無効になる。
自動削除が有効な場合、run ()を呼び出した後、QThreadPool はこの runnable を自動的に削除する。そうでない場合、所有権はアプリケーション・プログラマにある。
このフラグは、QThreadPool::start ()を呼び出す前に設定する必要がある。QThreadPool::start() の後でこの関数を呼び出すと、未定義の動作になる。
autoDelete() およびQThreadPoolも参照のこと 。
© 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.