Compartilhar via


receba a função

Geral receber implementação, permitindo um contexto aguardar os dados de origem exatamente um e filtrar os valores que são aceitos.

template <
   class _Type
>
_Type receive(
   _Inout_ ISource<_Type> * _Src,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);

template <
   class _Type
>
_Type receive(
   _Inout_ ISource<_Type> * _Src,
   typename ITarget<_Type>::filter_method const& _Filter_proc,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);

template <
   class _Type
>
_Type receive(
   ISource<_Type> &_Src,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);

template <
   class _Type
>
_Type receive(
   ISource<_Type> &_Src,
   typename ITarget<_Type>::filter_method const& _Filter_proc,
   unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);

Parâmetros

  • _Type
    O tipo de carga.

  • _Src
    Um ponteiro ou referência para a origem da qual os dados são esperados.

  • _Timeout
    O tempo máximo para o qual o método deve para os dados, em milissegundos.

  • _Filter_proc
    Função de filtro que determina se as mensagens devem ser aceitas.

Valor de retorno

Um valor de origem, do tipo de carga.

Comentários

Se o parâmetro _Timeout tem um valor diferente da constante COOPERATIVE_TIMEOUT_INFINITE, a exceção operation_timed_out é lançada se o período de tempo especificado expirar antes que uma mensagem é recebida.Se você quiser um limite de comprimento zero, você deve usar o Try-Receive função, em oposição à chamada receive com um tempo limite de 0 (zero), como é mais eficiente e não lançar exceções em tempos.

Para mais informações, consulte Mensagem que passa funções.

Requisitos

Cabeçalho: agents.h

Namespace: concorrência

Consulte também

Referência

simultaneidade Namespace

função try_receive

função de enviar

função de asend