TaskTree

From Qt Wiki
Jump to navigation Jump to search


TaskTree - generic solution for automatic management of asynchronous tasks (C++)

TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types.

The recipe on how to 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 configurations, Locator filter, Clang tool, Autotests, driving Axivion plugin's communication and much more...

The TaskTree's implementation is separated from the QtCreator specific code and may already serve as a general purpose solution outside of QtCreator.

Notes from the presentation/discussion at Qt Contributors Summit 2023: TaskTree CS23

More Info

Content Link Additional Info
Documentation https://doc-snapshots.qt.io/qtcreator-extending/taskingsolution-module.html
Sources https://github.com/qt-creator/qt-creator/tree/master/src/libs/solutions/tasking
Autotests https://github.com/qt-creator/qt-creator/tree/master/tests/auto/solutions/tasking
Demo https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/demo
ImageScaling https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/imagescaling 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
TrafficLight https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/trafficlight An alternative implementation of https://doc.qt.io/qt-6/qtscxml-trafficlight-widgets-static-example.html using TaskTree
DataExchange https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/dataexchange An example for a reusable TaskTree recipe
Suggestions https://bugreports.qt.io/browse/QTCREATORBUG-28741
The first public TaskTree presentation on Sep 28th 2023 at Felgo office, Vienna.