Auf dieser Seite

QtTaskTree::QSyncTask Class

class QtTaskTree::QSyncTask

Führt einen benutzerdefinierten Handler zwischen anderen Aufgaben synchron aus. Mehr...

Kopfzeile: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Seit: Qt 6.11
Vererbt: QtTaskTree::ExecutableItem

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Funktionen

QSyncTask(Handler &&handler)

Detaillierte Beschreibung

QSyncTask ist nützlich, wenn Sie einen zusätzlichen Handler zwischen anderen Tasks ausführen möchten. QSyncTask wird von seinem Elternteil Group wie jeder andere Task betrachtet. Vermeiden Sie die langwierige Ausführung des Handler-Bodys von QSyncTask, da dieser vom Aufrufer-Thread synchron ausgeführt wird. Wenn dies unvermeidlich ist, sollten Sie stattdessen QThreadFunctionTask verwenden.

Dokumentation der Mitgliedsfunktionen

[explicit] template <typename Handler, std::enable_if_t<!std::is_same_v<q20::remove_cvref_t<Handler>, QSyncTask>, bool> = true> QSyncTask::QSyncTask(Handler &&handler)

Konstruiert ein Element, das ein übergebenes handler synchron ausführt. Die Handler ist vom Typ std::function<DoneResult()>. Der Wert DoneResult, der von handler zurückgegeben wird, wird bei der Auflösung der übergeordneten Gruppe workflow policy berücksichtigt. Optional wird auch die verkürzte Form von std::function<void()> akzeptiert. In diesem Fall wird davon ausgegangen, dass der Rückgabewert DoneResult::Success ist.

Der übergebene handler wird synchron vom Thread des Aufrufers ausgeführt, so dass eine lange Ausführung des Handler-Bodys vermieden wird. Andernfalls sollten Sie QThreadFunctionTask verwenden.

Hinweis: Das Element QSyncTask wird nicht als Aufgabe gezählt, wenn der Fortschritt des Aufgabenbaums gemeldet wird, und ist nicht in QTaskTree::taskCount() oder QTaskTree::progressMaximum() enthalten.

© 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.