receive, fonction
Implémentation receive générale permettant à un contexte d'attendre des données d'une source exactement et de filtrer les valeurs acceptées.
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
);
Paramètres
_Type
Type de charge utile._Src
Pointeur ou référence à la source à partir de laquelle les données sont attendues._Timeout
Durée maximale d'attente des données par la méthode, en millisecondes._Filter_proc
Fonction de filtre qui détermine si les messages doivent être acceptés.
Valeur de retour
Valeur issue de la source, du type de la charge utile.
Notes
Si le paramètre _Timeout a une valeur autre que la constante COOPERATIVE_TIMEOUT_INFINITE, l'exception operation_timed_out est levée si la durée spécifiée expire avant qu'un message ne soit reçu.Si vous souhaitez un délai d'attente de longueur nulle, vous devez utiliser la fonction try_receive, en appelant receive avec un délai d'attente de 0 (zéro), car c'est plus efficace et ne lève pas d'exceptions sur les délais d'attente.
Pour plus d'informations, consultez Fonctions de passage de messages.
Configuration requise
En-tête : agents.h
Accès concurrentiel del'espace de noms :