future
-Klasse
Beschreibt ein asynchrones Rückgabeobjekt.
Syntax
template <class Ty>
class future;
Hinweise
Jeder standardmäßige asynchrone Anbieter gibt ein Objekt zurück, dessen Typ eine Instanziierung dieser Vorlage ist. Ein future
Objekt bietet den einzigen Zugriff auf den asynchronen Anbieter, dem es zugeordnet ist. Wenn Sie mehrere asynchrone Rückgabeobjekte benötigen, die demselben asynchronen Anbieter zugeordnet sind, kopieren Sie das future
Objekt in ein shared_future
Objekt.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
future |
Erstellt ein future -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
get |
Ruft das Ergebnis ab, das im zugeordneten asynchronen Zustand gespeichert ist. |
share |
Konvertiert das Objekt in ein shared_future . |
valid |
Gibt an, ob das Objekt nicht leer ist. |
wait |
Blockiert den aktuellen Thread, bis der zugeordnete asynchrone Zustandbereit ist. |
wait_for |
Blockiert, bis der zugeordnete asynchrone Zustand bereit ist, oder bis die angegebene Zeit verstrichen ist. |
wait_until |
Blockiert, bis der zugeordnete asynchrone Zustand bereit ist, oder bis ein angegebener Zeitpunkt erreicht ist. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
future::operator= |
Überträgt den zugeordneten asynchronen Zustand aus einem angegebenen Objekt. |
Anforderungen
Header: <future>
Namespace:std
Konstruktoren
Erstellt ein future
-Objekt.
future() noexcept;
future(future&& Other) noexcept;
Parameter
Other
Ein future
-Objekt.
Hinweise
Mit dem ersten Konstruktor wird ein future
-Objekt erstellt, das über keinen zugeordneten asynchronen Zustand verfügt.
Der zweite Konstruktor erstellt ein future
Objekt und überträgt den zugeordneten asynchronen Zustand von Other. Andere haben keinen zugeordneten asynchronen Zustand mehr.
get
Ruft das Ergebnis ab, das im zugeordneten asynchronen Zustand gespeichert ist.
Ty get();
Rückgabewert
Wenn das Ergebnis eine Ausnahme ist, wird es erneut von der Methode ausgelöst. Andernfalls wird das Ergebnis zurückgegeben.
Hinweise
Bevor sie das Ergebnis abruf, blockiert diese Methode den aktuellen Thread, bis der zugeordnete asynchrone Zustand bereit ist.
Für die Teilspezialisierung future<Ty&>
ist der gespeicherte Wert praktisch ein Verweis auf das Objekt, das dem asynchronen Anbieter als Rückgabewert übergeben wurde.
Weil für die Spezialisierung future<void>
kein gespeicherten Wert existiert, gibt die Methode void
zurück.
In anderen Spezialisierung verschiebt die Methode ihren Rückgabewert aus dem gespeicherten Wert. Deshalb sollten Sie diese Methode nur einmal aufrufen.
operator=
Überträgt einen zugeordneten asynchronen Zustand aus einem angegebenen Objekt.
future& operator=(future&& Right) noexcept;
Parameter
Right
Ein future
-Objekt.
Rückgabewert
*this
Bemerkungen
Nach der Übertragung verfügt Right nicht mehr über einen zugeordneten asynchronen Zustand.
share
Konvertiert das Objekt in ein shared_future
Objekt.
shared_future<Ty> share();
Rückgabewert
shared_future(move(*this))
valid
Gibt an, ob das Objekt einen zugeordneten asynchronen Zustand hat.
bool valid() noexcept;
Rückgabewert
true
, wenn das Objekt einen zugeordneten asynchronen Zustand hat; andernfalls false
.
wait
Blockiert den aktuellen Thread, bis der zugeordnete asynchrone Zustand bereit ist.
void wait() const;
Hinweise
Ein zugeordneter asynchroner Zustand ist nur dann bereit, wenn sein asynchroner Anbieter einen Rückgabewert oder eine Ausnahme gespeichert hat.
wait_for
Blockiert dem aktuelle Thread, bis der zugeordnete asynchrone Zustand bereit ist, oder bis ein angegebenes Zeitintervall verstrichen ist.
template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;
Parameter
Rel_time
Ein chrono::duration
Objekt, das ein maximales Zeitintervall angibt, das der Thread blockiert.
Rückgabewert
Ein future_status
Wert, der den Grund für die Rückgabe angibt.
Hinweise
Ein zugeordneter asynchroner Zustand ist nur dann bereit, wenn sein asynchroner Anbieter einen Rückgabewert oder eine Ausnahme gespeichert hat.
wait_until
Blockiert den aktuelle Thread, bis der zugeordnete asynchrone Zustand bereit oder ein angegebener Zeitpunkt verstrichen ist.
template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;
Parameter
Abs_time
Ein time_point
Objekt, das eine Zeit angibt, nach der der Thread die Blockierung aufheben kann.
Rückgabewert
Ein future_status
Wert, der den Grund für die Rückgabe angibt.
Hinweise
Ein zugeordneter asynchroner Zustand ist nur dann bereit, wenn sein asynchroner Anbieter einen Rückgabewert oder eine Ausnahme gespeichert hat.