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