Udostępnij za pośrednictwem


Metoda condition_variable_any::wait_for

Blokuje wątku i ustawia interwał czasu, po którym odblokowuje wątku.

template<
   class Lock,
   class Rep,
   class Period
>
bool wait_for(
   Lock& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time
);
template<
   class Lock,
   class Rep,
   class Period,
   class Predicate
>
bool wait_for(
   Lock& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time,
   Predicate Pred
);

Parametry

  • Lck
    A mutex obiektu dowolnego typu.

  • Rel_time
    A chrono::duration budzi obiekt, który określa czas, zanim wątek.

  • Pred
    Wyrażenie zwraca true lub false.

Wartość zwracana

Pierwsza metoda zwraca cv_status::timeout Jeśli oczekiwania kończy, gdy Rel_time upłynął.W przeciwnym razie zwraca metodę cv_status::no_timeout.

Druga metoda zwraca wartość Pred.

Uwagi

Pierwsza metoda blokuje aż do condition_variable_any obiektu jest sygnalizowane przez wywołanie notify_one lub notify_all, aż interwał czasu lub Rel_time upłynął.To może również wake up spuriously.

Druga metoda obowiązują wykonuje następujący kod.

while(!Pred())
   if(wait_for(Lck, Rel_time) == cv_status::timeout)
      return Pred();
return true;

Wymagania

Nagłówek: condition_variable

Obszar nazw: std

Zobacz też

Informacje

Klasa condition_variable_any

<condition_variable>