Compartilhar via


Método CONDITION_VARIABLE::wait_for

Bloquear um segmento, e defina um intervalo de tempo depois do que o segmento desbloqueia.

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

Parâmetros

  • Lck
    Um objeto de unique_lock<mutex> .

  • Rel_time
    Um objeto de chrono::duration que especifica a quantidade de tempo antes que o segmento acordar.

  • Pred
    Qualquer expressão que retorna true ou false.

Valor de retorno

O primeiro método retorna se a cv_status::timeout espera termina quando Rel_time passados.Caso contrário, o método retorna cv_status::no_timeout.

o segundo método retorna o valor de Pred.

Comentários

Os primeiros blocos de método ao objeto de condition_variable são sinalizados por uma chamada a notify_one ou notify_all ou até o intervalo de tempo Rel_time passados.Também pode spuriously acordar.

O segundo método efetivamente executa o código a seguir.

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

Requisitos

Cabeçalho: condition_variable

namespace: STD

Consulte também

Referência

Classe CONDITION_VARIABLE

<condition_variable>