Share via


task_handle-Klasse

Die task_handle-Klasse stellt eine einzelne parallele Arbeitsaufgabe dar. Kapselt die Anweisungen und die Daten, die erforderlich sind, um ein Stück Arbeit auszuführen.

template<
   typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;

Parameter

  • _Function
    Der Typ des Funktionsobjekts, das aufgerufen wird, um die vom task_handle-Objekt dargestellten Arbeiten auszuführen.

Member

Öffentliche Konstruktoren

Name

Beschreibungen

task_handle::task_handle-Konstruktor

Erstellt ein neues task_handle-Objekt. Die Arbeit der Aufgabe wird ausgeführt, indem die als Parameter an den Konstruktor angegebene Funktion aufgerufen wird.

task_handle::~task_handle-Destruktor

Zerstört das task_handle-Objekt.

Öffentliche Operatoren

Name

Beschreibungen

task_handle::operator()-Operator

Der Funktionsaufrufoperator, den die Laufzeit aufruft, um die Arbeit des Aufgabenhandles auszuführen.

Hinweise

task_handle-Objekte können in Verbindung mit einer structured_task_group oder einem allgemeineren task_group-Objekt verwendet werden, um die Arbeit in parallele Aufgaben aufzuteilen. Weitere Informationen finden Sie unter Aufgabenparallelität (Concurrency Runtime).

Beachten Sie, dass der Ersteller eines task_handle-Objekts für das Verwalten der Lebensdauer des erstellten task_handle-Objekts zuständig ist, bis es nicht mehr von der Concurrency Runtime benötigt wird. In der Regel bedeutet dies, dass das task_handle-Objekt erst zerstört werden darf, bis die wait-Methode oder run_and_wait-Methode der task_group oder structured_task_group aufgerufen wurde, für die es in die Warteschlange gestellt wurde.

task_handle-Objekte werden in der Regel in Verbindung mit C++-Lambdas verwendet. Da Sie den wahren Typ des Lambdas nicht wissen, wird i. d. R. die make_task-Funktion verwendet, um ein task_handle-Objekt zu erstellen.

Beim Testlauf wird eine Kopie der Arbeitsfunktion erstellt, die an ein task_handle-Objekt übergeben wird. Daher werden Zustandsänderungen, die in einem an ein task_handle-Objekt übergebenen Funktionsobjekt auftreten, nicht in der Kopie dieses Funktionsobjekts angezeigt.

Vererbungshierarchie

_Chore

_AllocBase

_UnrealizedChore

task_handle

Anforderungen

Header: ppl.h

Namespace: Concurrency

Siehe auch

Referenz

Concurrency-Namespace

task_group-Klasse

structured_task_group-Klasse

task_group::run-Methode

task_group::wait-Methode

structured_task_group::run-Methode

structured_task_group::wait-Methode

Weitere Ressourcen

make_task-Funktion

task_group::run_and_wait-Methode

structured_task_group::run_and_wait-Methode