task::task-Konstruktor (C++-REST-SDK)
Erstellt ein task-Objekt.
task();
template<
typename _Ty
>
__declspec(
noinline
) explicit task(_Ty _Param);
template<
typename _Ty
>
__declspec(
noinline
) explicit task(_Ty _Param, const task_options& _TaskOptions);
task(
const task& _Other
);
task(
task&& _Other
);
Parameter
_Ty
Der Typ des Parameters, von dem der Task erstellt werden soll._Param
Der Parameter, von dem der Task erstellt werden soll. Dies könnte bei Verwendung von Aufgaben in der Windows Store-App ein Lambda-Ausdruck, ein Funktionsobjekt, ein task_completion_event<result_type>-Objekt oder eine Windows::Foundation::IAsyncInfo sein. Der Lambda-Ausdruck oder das Funktionsobjekt sollte ein Typ wie std::function<X(void)> sein, wobei X eine Variable des Typs result_type, task<result_type> oder eine Windows::Foundation::IAsyncInfo in Windows Store-Apps sein kann._TaskOptions
Die Aufgabenoptionen enthalten Abbruchtoken, Planer usw._Other
Das task-Quellobjekt.
Hinweise
Der Standardkonstruktor für task ist nur vorhanden, damit Aufgaben in Containern verwendet werden können. Eine erstellte Standardaufgabe kann nicht verwendet werden, bis Sie ihr eine gültige Aufgabe zuweisen. Methoden wie get, wait oder then lösen eine invalid_argument-Ausnahme aus, wenn sie für eine erstellte Standardaufgabe aufgerufen werden.
Eine Aufgabe, die aus einem task_completion_event erstellt wird, wird abgeschlossen (und danach werden ihre Fortsetzungen geplant), wenn das Aufgabenabschlussereignis festgelegt ist.
Die Version des Konstruktors, die ein Abbruchtoken verwendet, erstellt eine Aufgabe, die mithilfe der cancellation_token_source, aus der das Token abgerufen wurde, abgebrochen werden kann. Die Aufgaben, die ohne ein Abbruchtoken erstellt werden, können nicht abgebrochen werden.
Die Aufgaben, die aus einer Windows::Foundation::IAsyncInfo-Schnittstelle oder einem Lambda-Ausdruck erstellt werden, der eine IAsyncInfo-Schnittstelle zurückgibt, erreichen den abgeschlossenen Zustand, wenn der enthaltene asynchrone Windows-Runtime-Vorgang oder die enthaltene Aktion abgeschlossen wurde. In ähnlicher Weise erreichen Aufgaben, die aus einem Lambda-Ausdruck erstellt werden, der einen task<result_type> zurückgibt, den abgeschlossenen Zustand, wenn die innere Aufgabe den abgeschlossenen Zustand erreicht, und nicht wenn die Rückgabe vom Lambda-Ausdruck erfolgt.
task verhält sich wie ein intelligenter Zeiger und kann mehrmals als Wert übergeben werden. Ein Zugriff ist durch mehrere Threads ohne Sperren möglich.
Die Konstruktorüberladung, die eine Windows::Foundation::IAsyncInfo-Schnittstelle oder einen Lambda-Ausdruck verwendet, der eine solche Schnittstelle zurückgibt, ist nur für Windows Store-Apps verfügbar.
Weitere Informationen finden Sie unter Aufgabenparallelität (Concurrency Runtime).
Anforderungen
Header: pplxtasks.h
Namespace: pplx