Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt einen asynchronen Anbieter dar.
template<class Fn, class... ArgTypes>
future<typename result_of<Fn(ArgTypes...)>::type>;
async(Fn&& fn, ArgTypes&&... args);
template<class Fn, class... ArgTypes>
future<typename result_of<Fn(ArgTypes...)>::type>;
async(launch policy, Fn&& fn, ArgTypes&&... args);
Parameter
- policy
Ein Starten-Wert.
Hinweise
Definitionen von Abkürzungen:
dfn |
Das Ergebnis des Aufrufens von decay_copy(forward<Fn>(fn)). |
dargs |
Die Ergebnisse der Aufrufe decay_copy(forward<ArgsTypes>(args…)). |
Ty |
Der Typ result_of<Fn(ArgTypes…)>::type. |
Die erste Vorlagenfunktion gibt async(launch::any, fn, args…) zurück.
Die zweite Funktion future<Ty> gibt ein Objekt zurück, dessen zugeordneter asynchroner Zustand ein Ergebnis zusammen mit den Werten von dfn und von dargs und einem Threadobjekt enthält, um einen separaten Ausführungsthread zu verwalten.
Es sei denn, decay<Fn>::type ein anderer Typ als Start ist, die zweite Funktion nicht an der Überladungsauflösung beteiligt.
Wenn policylaunch::any ausgewählt ist, kann die Funktion launch::async oder launch::deferred aus.In dieser Implementierung verwendet die Funktion launch::async.
Wenn policylaunch::async ist, erstellt die Funktion einen Thread, der INVOKE(dfn, dargs..., Ty) ergibt.Die - Funktion gibt zurück, nachdem sie den Thread ohne Warteergebnisse erstellt.Wenn das System einen neuen Thread kann nicht gestartet werden, führt die Funktion system_error aus, die einen Fehlercode von resource_unavailable_try_again verfügt.
Wenn policylaunch::deferred ist, markiert die Funktion ihren zugeordneten asynchronen Zustand als Aktivieren einer verzögerten Funktion und gibt zurück.Der erste Aufruf von jeder nicht-zeitgesteuerten Funktion, die auf den zugeordneten asynchronen Zustand wartet, um bereit ist gültig, ruft die verzögerte Funktion auf, indem INVOKE(dfn, dargs..., Ty) ergibt.
In allen Fällen wird der zugeordnete asynchrone Zustand des Objekts future nicht festgelegt, um vorzubereiten, bis die Auswertung von INVOKE(dfn, dargs…, Ty), entweder abgeschlossen wird, indem eine Ausnahme auslöst oder indem sie normalerweise zurückgibt.Das Ergebnis des zugeordneten asynchronen Zustands ist eine Ausnahme, wenn von ausgelöst wurde, oder jeder Wert, der von der Auswertung zurückgegeben wird.
Die PseudoFunktion INVOKE wird in <functional> definiert.
Anforderungen
Header: Zukunft
Namespace: std