Freigeben über


task_handle-Klasse

Die task_handle-Klasse stellt ein einzelnes paralleles Arbeitselement dar. Sie kapselt die Anweisungen und die zum Ausführen eines Teils der Arbeit erforderlichen Daten.

Syntax

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

Parameter

_Funktion
Der Typ des Funktionsobjekts, das aufgerufen wird, um die durch das task_handle Objekt dargestellte Arbeit auszuführen.

Member

Öffentliche Konstruktoren

Name Beschreibung
task_handle Erstellt ein neues task_handle-Objekt. Die Arbeit der Aufgabe wird durch Aufrufen der als Parameter für den Konstruktor angegebenen Funktion ausgeführt.
~task_handle Destruktor Zerstört das task_handle-Objekt.

Öffentliche Operatoren

Name Beschreibung
operator() Der Funktionsaufrufoperator, den die Laufzeit aufruft, um die Arbeit des Aufgabenhandle auszuführen.

Hinweise

task_handle Objekte können in Verbindung mit einem structured_task_group oder einem allgemeineren task_group Objekt verwendet werden, um Arbeit in parallele Aufgaben zu dekompilieren. Weitere Informationen finden Sie unter Task Parallelism.

Beachten Sie, dass der Ersteller eines task_handle Objekts dafür verantwortlich ist, die Lebensdauer des erstellten task_handle Objekts beizubehalten, bis es von der Concurrency Runtime nicht mehr benötigt wird. In der Regel bedeutet dies, dass das task_handle Objekt erst destruktiv werden darf, wenn entweder die Methode oder structured_task_group run_and_wait die Methode, für die es in die wait task_group Warteschlange gestellt wird, aufgerufen wurde.

task_handle Objekte werden in der Regel in Verbindung mit C++-Lambdas verwendet. Da Sie den tatsächlichen Lambda-Typ nicht kennen, wird die make_task-Funktion in der Regel verwendet, um ein task_handle Objekt zu erstellen.

Die Laufzeit erstellt eine Kopie der Arbeitsfunktion, die Sie an ein task_handle Objekt übergeben. Daher werden alle Zustandsänderungen, die in einem Funktionsobjekt auftreten, das Sie an ein task_handle Objekt übergeben, nicht in Ihrer Kopie dieses Funktionsobjekts angezeigt.

Vererbungshierarchie

task_handle

Anforderungen

Kopfzeile: ppl.h

Namespace: Parallelität

Operator()

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

void operator()() const;

task_handle

Erstellt ein neues task_handle-Objekt. Die Arbeit der Aufgabe wird durch Aufrufen der als Parameter für den Konstruktor angegebenen Funktion ausgeführt.

task_handle(const _Function& _Func);

Parameter

_Func
Die Funktion, die aufgerufen wird, um die durch das task_handle Objekt dargestellte Arbeit auszuführen. Dies kann ein Lambda-Functor, ein Zeiger auf eine Funktion oder ein Objekt sein, das eine Version des Funktionsaufrufoperators mit der Signatur void operator()()unterstützt.

Hinweise

Die Laufzeit erstellt eine Kopie der Arbeitsfunktion, die Sie an den Konstruktor übergeben. Daher werden alle Zustandsänderungen, die in einem Funktionsobjekt auftreten, das Sie an ein task_handle Objekt übergeben, nicht in Ihrer Kopie dieses Funktionsobjekts angezeigt.

~task_handle

Zerstört das task_handle-Objekt.

~task_handle();

Siehe auch

Concurrency-Namespace
task_group-Klasse
structured_task_group-Klasse