TaskTree: Difference between revisions
No edit summary |
No edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 21: | Line 21: | ||
! Content !! Link || Additional Info | ! Content !! Link || Additional Info | ||
|- | |- | ||
| Documentation || https://doc-snapshots.qt.io/qt6-dev/qttasktree-index.html || Ref docs: https://doc-snapshots.qt.io/qt6-dev/ | | Introductory Blog || https://www.qt.io/blog/qt-task-tree-coming-soon-in-qt-6.11 | ||
|- | |||
| Documentation || https://doc-snapshots.qt.io/qt6-dev/qttasktree-index.html || Ref docs: https://doc-snapshots.qt.io/qt6-dev/qttasktree-module.html | |||
|- | |- | ||
| Sources || https://code.qt.io/cgit/qt/qttasktree.git/ | | Sources || https://code.qt.io/cgit/qt/qttasktree.git/ | ||
| Line 31: | Line 33: | ||
| DataExchange || [Soon to come...] || An example of a reusable TaskTree recipe | | DataExchange || [Soon to come...] || An example of a reusable TaskTree recipe | ||
|- | |- | ||
| TrafficLight || | | TrafficLight || https://doc-snapshots.qt.io/qt6-dev/qttasktree-widgets-trafficlight-example.html || An alternative implementation of https://doc.qt.io/qt-6/qtscxml-trafficlight-widgets-static-example.html using TaskTree | ||
|- | |- | ||
| ImageScaling || | | ImageScaling || https://doc-snapshots.qt.io/qt6-dev/qttasktree-widgets-imagescaling-example.html<nowiki/>|| An alternative implementation of https://doc.qt.io/qt-6/qtconcurrent-imagescaling-example.html using TaskTree | ||
|- | |- | ||
| ImageScaling diff || https://codereview.qt-project.org/c/qt-creator/qt-creator/+/481573 || Difference in the implementation of the ImageScaling example using QFuture::then() and TaskTree | | ImageScaling diff || https://codereview.qt-project.org/c/qt-creator/qt-creator/+/481573 || Difference in the implementation of the ImageScaling example using QFuture::then() and TaskTree | ||
| Line 39: | Line 41: | ||
| AssetDownloader || https://codereview.qt-project.org/c/qt/qtbase/+/565933 || Patch replacing the old implementation of the asset downloader with TaskTree employed (TaskTree used in Qt 6.8 privately) | | AssetDownloader || https://codereview.qt-project.org/c/qt/qtbase/+/565933 || Patch replacing the old implementation of the asset downloader with TaskTree employed (TaskTree used in Qt 6.8 privately) | ||
|- | |- | ||
| Suggestions || https:// | | Suggestions || https://qt-project.atlassian.net/issues/?filter=18585 | ||
|- | |- | ||
| Presentation '24 || https://qt-wiki-uploads.s3.amazonaws.com/images/5/56/TaskTreePresentation.pdf | | Presentation '24 || https://qt-wiki-uploads.s3.amazonaws.com/images/5/56/TaskTreePresentation.pdf | ||
Latest revision as of 10:39, 19 December 2025
Qt Task Tree - generic solution for automatic management of asynchronous tasks (C++), by Jarek Kobus
TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types, including running processes, network queries, functions in separate threads, animations, timers, and so on... It's easily extensible with any other types of asynchronous tasks.
The recipe on how to create, run and manage the conglomerate of tasks is described in a declarative way in C++.
The recipes are enclosed in copyable value-type objects and may be run many times, or be part of more general recipes.
The TaskTree is broadly used in QtCreator, for executing Build / Deploy / Run configurations, Locator filter, Clang tool, VCS commands, Autotests, driving Axivion plugin's communication and much more...
The TaskTree will be included in Qt 6.11 as a new QtTaskTree module.
Notes from the presentation/discussion at Qt Contributors Summit 2023: TaskTree CS23
Notes from the presentation/discussion at Qt Contributors Summit 2024: QtCS2024 TaskTree