Condividi tramite


metodo condition_variable::wait_for

Blocca un thread e imposta un intervallo di tempo dopo di che il thread sblocca.

template<
   class Rep,
   class Period
>
cv_status wait_for(
   unique_lock<mutex>& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time
);
template<
   class Rep,
   class Period,
   class Predicate
>
bool wait_for(
   unique_lock<mutex>& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time,
   PredicatePred
);

Parametri

  • Lck
    Un oggetto unique_lock<mutex>.

  • Rel_time
    Un oggetto chrono::duration che specifica la quantità di tempo prima che il thread per.

  • Pred
    Qualsiasi espressione che restituisca true o false.

Valore restituito

Il primo metodo restituisce cv_status::timeout se l'attesa termina quando Rel_time trascorso.In caso contrario, il metodo restituisce cv_status::no_timeout.

Il secondo metodo restituisce il valore Pred.

Note

I primi blocchi di metodo all'oggetto condition_variable viene segnalato da una chiamata a notify_one o notify_all o fino all'intervallo di tempo Rel_time trascorso.Può inoltre svegliare spurio.

Il secondo metodo esegue effettivamente il codice seguente.

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

Requisiti

intestazione: condition_variable

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

classe condition_variable

<condition_variable>