Funkcja asynchroniczne
Reprezentuje asynchronicznego dostawcy.
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);
Parametry
- policy
A uruchomić wartość.
Uwagi
Definicje skrótów:
dfn |
W wyniku połączenia decay_copy(forward<Fn>(fn)). |
dargs |
Wyniki zaproszeń decay_copy(forward<ArgsTypes>(args…)). |
Ty |
The type result_of<Fn(ArgTypes…)>::type. |
Pierwszy szablon, funkcja zwraca async(launch::any, fn, args…).
Druga funkcja zwraca future<Ty> obiekt, którego asynchronicznego państwie stowarzyszonym posiada wynik wraz z wartością dfn i dargs i obiektu wątku do zarządzania oddzielnego wątku wykonywania.
O ile nie decay<Fn>::type jest typu innego niż uruchomienie, druga funkcja nie uczestniczy w wiązaniem.
If policy is launch::any, the function might choose launch::async or launch::deferred.W tej implementacji funkcji używany launch::async.
Jeśli policy jest launch::async, funkcja ta umożliwia tworzenie wątku, którego wynikiem jest INVOKE(dfn, dargs..., Ty).Funkcja zwraca po utworzeniu wątku bez oczekiwania na wyniki.Jeśli system nie może rozpocząć nowy wątek, funkcja wygeneruje system_error który ma kod błędu z resource_unavailable_try_again.
Jeśli policy jest launch::deferred, funkcja oznacza jako gospodarstwo Państwo asynchronicznego stowarzyszone odroczonego funkcji i zwraca.Pierwsze wywołanie do żadnej funkcji bez pomiaru czasu, która oczekuje asynchroniczny państwo stowarzyszone będzie gotowa w efekcie wywołuje funkcję odroczonego poprzez ocenę INVOKE(dfn, dargs..., Ty).
We wszystkich przypadkach, państwo stowarzyszone asynchronicznych, z future obiektu nie jest ustawiona na Gotowe do oceny INVOKE(dfn, dargs…, Ty) zakończeniu generowania wyjątków lub przywracając normalnie.W wyniku asynchronicznego państwo stowarzyszone jest wyjątek, jeśli jeden został wyrzucony lub dowolną wartość, który jest zwracany przez oceny.
Pseudo-function INVOKE jest zdefiniowany w <functional>.
Wymagania
Nagłówek: przyszłych
Obszar nazw: std