Udostępnij za pośrednictwem


<future>

Zawierać standardowy nagłówek <przyszłych> do definiowania klas szablonów i obsługi szablonów, które upraszczają uruchomienia funkcji — na przykład w oddzielnym wątku — i pobierania jej wynik.Wynikiem jest wartość zwracana przez funkcję lub wyjątek, który jest emitowany przez funkcję, ale nie jest wyłapywany w funkcji.

Nagłówek ten używa współbieżność Runtime (ConcRT) tak, aby można go było używać razem z innymi mechanizmami ConcRT.Aby uzyskać więcej informacji o ConcRT, zobacz Współbieżność środowiska wykonawczego.

#include <future>

Uwagi

[!UWAGA]

W kodzie, który jest kompilowany przy użyciu /clr lub /clr:pure, Nagłówek ten jest zablokowany.

Asynchronicznego dostawca przechowuje wyników wywołania funkcji.Asynchronicznego obiektu zwrotu jest używana do pobierania wyników wywołania funkcji.Asynchronicznego państwie stowarzyszonym zapewnia komunikację między asynchronicznego dostawcy i jeden lub więcej obiektów zwrotu asynchronicznego.

Program nie bezpośrednio tworzyć żadnych obiektów państwo stowarzyszone asynchronicznego.Program tworzy asynchronicznego dostawcy przy każdym potrzebuje jednego i od tego tworzy obiekt zwrotu asynchronicznego akcji stanu asynchronicznego skojarzony z dostawcą.Asynchroniczne dostawców i asynchronicznych obiektów zwrotu zarządzać obiektami, które prowadzą ich wspólnego asynchronicznego państwie stowarzyszonym.Jeśli ostatni obiekt odwołujący się państwo stowarzyszone asynchronicznego zwalnia go, obiekt, który przechowuje państwo stowarzyszone asynchroniczne jest niszczony.

Asynchroniczne dostawcy lub asynchronicznego obiektu zwrotu, który ma nie państwo stowarzyszone asynchroniczne jest pusty.

Jest skojarzony stan asynchronicznego Gotowe tylko wtedy, gdy jej dostawcę asynchroniczny ma przechowywana wartość zwracana lub przechowywane wyjątek.

Funkcja szablon async i klas szablonów promise i packaged_task są asynchroniczne dostawcy.Szablon klasy future i shared_future opisują obiekty zwrotu asynchronicznego.

Każdą z klas szablon promise, future, i shared_future ma specjalizacji dla typu void i częściowa specjalizacja do przechowywania i pobierania wartości przez odniesienie.Specjalizacje te różnią się od szablonu podstawowego tylko w przypadku podpisów i semantyki przechowywania i pobierania zwracaną wartość funkcji.

Klas szablonów future i shared_future nigdy nie blokuj w ich destruktory, z wyjątkiem w jednym przypadku, która zostanie zachowana zgodność z poprzednimi wersjami: w przeciwieństwie do innych prognoz dla future— lub ostatni shared_future— dołączony do zadania uruchomione z std::async, bloki destruktor, jeśli zadanie nie zostało ukończone; oznacza to, że blokuje Jeśli ten wątek nie jeszcze wywołana .get() lub .wait() i zadanie jest nadal uruchomione.Następującą uwagę użyteczność został dodany do opisu std::async w standardowej wersji roboczej: "[Uwaga: Jeżeli przyszłość, uzyskane z poniższe propozycje są przemieszczane poza zakres lokalny, inny kod, który używa przyszłości muszą być świadomi, że przyszłość destruktora może zablokować udostępnionych Państwo staje się gotowy. — Uwaga]" we wszystkich innych przypadkach, future i shared_future destruktory są wymagane i są gwarantowane nigdy nie blokuj.

Elementy członkowskie

Klasy

Nazwa

Opis

future — Klasa

W tym artykule opisano asynchronicznego obiektu zwrotu.

future_error — Klasa

W tym artykule opisano exception obiekt, który może zostać wygenerowany przy użyciu metod typy, które zarządzają future obiektów.

packaged_task — Klasa

Opisuje asynchronicznego dostawca, który jest otoką rozmów i którego podpis wywołania jest Ty(ArgTypes...).Stanu asynchronicznego skojarzone przechowuje kopię jego nieopłacona obiekt oprócz potencjalnych wyników.

promise — Klasa

Opisuje dostawcę asynchronicznego.

shared_future — Klasa

W tym artykule opisano asynchronicznego obiektu zwrotu.W przeciwieństwie do z future obiektu, asynchroniczny dostawcy można skojarzyć z dowolną liczbą shared_future obiektów.

Struktury

Nazwa

Opis

is_error_code_enum — Struktura

Specjalizacja, który wskazuje, że future_errc nadaje się do przechowywania error_code.

uses_allocator — Struktura

Specjalizacja, który zawsze pozostaje prawdziwe.

Funkcje

Nazwa

Opis

async — Funkcja

Reprezentuje asynchronicznego dostawcy.

future_category — Funkcja

Zwraca odwołanie do error_category obiekt, który charakteryzuje się błędów, które są związane z future obiektów.

make_error_code — Funkcja

Tworzy error_code , który ma error_category obiekt, który charakteryzuje future błędy.

make_error_condition — Funkcja

Tworzy error_condition , który ma error_category obiekt, który charakteryzuje future błędy.

swap — Funkcja (<future>)

Wymian asynchronicznych państwo stowarzyszone jednego promise obiektu do innego.

Wyliczenia

Nazwa

Opis

future_errc — Wyliczenie

Dostarcza nazw symbolicznych dla błędów, które zostały zgłoszone przez future_error klasy.

future_status — Wyliczenie

Dostarcza symboliczne nazwy dla przyczyn, które może zwrócić czasowa funkcja oczekiwania.

launch — Wyliczenie

Reprezentuje typ maski bitowej, który opisuje możliwe tryby funkcji szablonu async.

Zobacz też

Inne zasoby

Pliki nagłówkowe standardowej biblioteki języka C++