receive (Función)
Una implementación receive general, que permite a un contexto esperar datos exactamente de un origen y filtrar los valores que se aceptan.
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
El tipo de carga._Src
Un puntero o referencia al origen del que se esperan los datos._Timeout
El tiempo máximo que el método debe permitir para los datos, en milisegundos._Filter_proc
Una función de filtro que determina si se deben aceptar los mensajes.
Valor devuelto
Un valor del origen, del tipo de carga útil.
Comentarios
Si el parámetro _Timeout tiene un valor distinto de la constante COOPERATIVE_TIMEOUT_INFINITE, se produce la excepción operation_timed_out si la cantidad de tiempo especificada expira antes de recibirse un mensaje. Si desea un tiempo de espera de duración cero, debería usar la función try_receive, en lugar de llamar a receive con un tiempo de espera de 0 (cero), ya que es más eficaz y no produce excepciones en tiempos de espera.
Para obtener más información, vea Funciones que pasan mensajes.
Requisitos
Encabezado: agents.h
Espacio de nombres: simultaneidad