Udostępnij przez


future Klasa

Opisuje asynchroniczny obiekt zwracany.

Składnia

template <class Ty>
class future;

Uwagi

Każdy standardowy dostawca asynchroniczny zwraca obiekt, którego typ jest wystąpieniem tego szablonu. Obiekt future zapewnia jedyny dostęp do dostawcy asynchronicznego, z którymi jest skojarzony. Jeśli potrzebujesz wielu asynchronicznych obiektów zwracanych skojarzonych z tym samym dostawcą shared_future asynchronicznym, skopiuj future obiekt do obiektu.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
future future Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
get Pobiera wynik przechowywany w skojarzonym stanie asynchronicznym.
share Konwertuje obiekt na shared_futureobiekt .
valid Określa, czy obiekt nie jest pusty.
wait Blokuje bieżący wątek do momentu gotowości skojarzonego stanu asynchronicznego.
wait_for Blokuje stan asynchroniczny skojarzony lub do czasu upływu określonego czasu.
wait_until Blokuje, dopóki skojarzony stan asynchroniczny nie będzie gotowy lub do określonego punktu w czasie.

Operatory publiczne

Nazwa/nazwisko opis
future::operator= Przenosi skojarzony stan asynchroniczny z określonego obiektu.

Wymagania

Nagłówka:<future>

Obszaru nazw:std

Konstruktory

future Tworzy obiekt.

future() noexcept;
future(future&& Other) noexcept;

Parametry

Other
Obiekt future.

Uwagi

Pierwszy konstruktor tworzy future obiekt, który nie ma skojarzonego stanu asynchronicznego.

Drugi konstruktor konstruuje future obiekt i przenosi skojarzony stan asynchroniczny z other. Inne nie mają już skojarzonego stanu asynchronicznego.

get

Pobiera wynik przechowywany w skojarzonym stanie asynchronicznym.

Ty get();

Wartość zwracana

Jeśli wynik jest wyjątkiem, metoda ponownie go wywróci. W przeciwnym razie zostanie zwrócony wynik.

Uwagi

Przed pobraniem wyniku ta metoda blokuje bieżący wątek do momentu gotowości skojarzonego stanu asynchronicznego.

W przypadku częściowej specjalizacji future<Ty&>wartość przechowywana jest w rzeczywistości odwołaniem do obiektu przekazanego do dostawcy asynchronicznego jako wartości zwracanej.

Ponieważ dla specjalizacji future<void>nie istnieje żadna przechowywana wartość , metoda zwraca voidwartość .

W innych specjalizacjach metoda przenosi wartość zwracaną z wartości przechowywanej. W związku z tym wywołaj tę metodę tylko raz.

operator=

Transferuje skojarzony stan asynchroniczny z określonego obiektu.

future& operator=(future&& Right) noexcept;

Parametry

Right
Obiekt future.

Wartość zwracana

*this

Uwagi

Po przeniesieniu prawo nie ma już skojarzonego stanu asynchronicznego.

share

Konwertuje obiekt na shared_future obiekt.

shared_future<Ty> share();

Wartość zwracana

shared_future(move(*this))

valid

Określa, czy obiekt ma skojarzony stan asynchroniczny.

bool valid() noexcept;

Wartość zwracana

true jeśli obiekt ma skojarzony stan asynchroniczny; w przeciwnym razie, false.

wait

Blokuje bieżący wątek do momentu gotowości skojarzonego stanu asynchronicznego.

void wait() const;

Uwagi

Skojarzony stan asynchroniczny jest gotowy tylko wtedy, gdy jego dostawca asynchroniczny przechowywał wartość zwracaną lub przechowywał wyjątek.

wait_for

Blokuje bieżący wątek do momentu, aż skojarzony stan asynchroniczny będzie gotowy lub do czasu upływu określonego interwału czasu.

template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;

Parametry

Rel_time
chrono::duration Obiekt, który określa maksymalny interwał czasu, który blokuje wątek.

Wartość zwracana

Element future_status wskazujący przyczynę powrotu.

Uwagi

Skojarzony stan asynchroniczny jest gotowy tylko wtedy, gdy jego dostawca asynchroniczny przechowywał wartość zwracaną lub przechowywał wyjątek.

wait_until

Blokuje bieżący wątek do momentu, aż skojarzony stan asynchroniczny będzie gotowy lub do momentu po określonym punkcie czasu.

template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;

Parametry

Abs_time
time_point Obiekt, który określa czas, po którym wątek może odblokować.

Wartość zwracana

Element future_status wskazujący przyczynę powrotu.

Uwagi

Skojarzony stan asynchroniczny jest gotowy tylko wtedy, gdy jego dostawca asynchroniczny przechowywał wartość zwracaną lub przechowywał wyjątek.

Zobacz też

Odwołanie do plików nagłówka
<future>