Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Blockiert einen Thread und legt einen maximalen Zeitpunkt fest, an dem der Thread die Blockierung aufgehoben wird.
template<class Lock, class Clock, class Duration>
void wait_until(
Lock& Lck,
const chrono::time_point<Clock, Duration>& Abs_time);
template<class Lock, class Clock, class Duration, class Predicate>
void wait_until(
Lock& Lck,
const chrono::time_point<Clock, Duration>& Abs_time,
Predicate Pred);
template<class Lock>
void wait_until(
Lock Lck,
const xtime *Abs_time);
template<class Lock, class Predicate>
void wait_until(
Lock Lck,
const xtime *Abs_time,
Predicate Pred);
Parameter
Lck
Ein Mutex-Objekt.Abs_time
Ein chrono::time_point-Objekt.Pred
Ein beliebiger Ausdruck, der true oder false zurückgibt.
Rückgabewert
Methoden, die eine cv_status-Typrückgabe cv_status::timeout zurückgeben, wenn dabei endet, wenn Abs_time ab.Andernfalls geben die Methoden cv_status::no_timeout zurück.
Methoden, die eine bool Rückgabe der Wert von Pred zurückgeben.
Hinweise
Die ersten Methodenblöcke bis das condition_variable-Objekt wird durch einen Aufruf notify_one oder zu notify_all oder bis Abs_time signalisiert.Er kann auch unecht aufwachen.
Die zweite Methode verhält sich praktisch den folgenden Code aus.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
Im dritten und vierten Methoden verwenden einen Zeiger auf ein Objekt des Typs xtime, um das chrono::time_point-Objekt zu ersetzen.Das Objekt xtime gibt die maximale Dauer auf, um ein Signal zu warten.
Anforderungen
Header: condition_variable
Namespace: std