Partager via


méthode de condition_variable::wait_for

Bloque un thread, et définit un intervalle de temps après lequel le thread débloque.

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
);

Paramètres

  • Lck
    Objet unique_lock<mutex>.

  • Rel_time
    Un objet d' chrono::duration qui spécifie la durée avant que le thread se réveille.

  • Pred
    Toute expression qui retourne true ou false.

Valeur de retour

La première méthode retourne cv_status::timeout si l'attente se termine lorsque Rel_time s'est écoulé.Sinon, la méthode retourne cv_status::no_timeout.

La deuxième méthode retourne la valeur d' Pred.

Notes

Les premiers blocs de méthode jusqu'à l'objet d' condition_variable signalé est par un appel à notify_one ou notify_all ou jusqu'à ce que l'intervalle de temps Rel_time s'est écoulé.Il peut également se réveiller faussement.

La deuxième méthode exécute efficacement le code suivant.

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

Configuration requise

en-tête : condition_variable

l'espace de noms : DST

Voir aussi

Référence

classe condition_variable

<condition_variable>