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.
Elementy członkowskie
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_future obiekt . |
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łówek: <future>
Przestrzeń 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 void
wartość .
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.