receive-Funktion
Ein allgemeine Empfangsimplementierung, mit der ein Kontext auf Daten von genau einer Quelle warten und die akzeptierten Werte filtern kann.
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
);
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
);
Parameter
_Type
Der Nutzlasttyp._Src
Ein Zeiger oder Verweis auf die Quelle, von der Daten erwartet werden._Timeout
Die maximale Zeit, für die die Methode Daten empfangen sollte, in Millisekunden._Filter_proc
Eine Filterfunktion, die bestimmt, ob Meldungen akzeptiert werden sollen.
Rückgabewert
Ein Wert aus der Quelle mit dem Nutzlasttyp.
Hinweise
Wenn der Parameter _Timeout einen anderen Wert als den konstanten Wert COOPERATIVE_TIMEOUT_INFINITE hat, wird die Ausnahme operation_timed_out ausgelöst, falls die angegebene Wartezeit abläuft, bevor eine Meldung empfangen wird. Wenn Sie ein Timeout der Länge 0 (null) möchten, sollten Sie die try_receive-Funktion verwenden, im Gegensatz zu einem Aufruf von receive mit einem Timeout von 0 (null), da sie effizienter ist und bei Timeouts keine Ausnahmen auslöst.
Weitere Informationen finden Sie unter Funktionen zum Übergeben von Meldungen.
Anforderungen
Header: agents.h
Namespace: Concurrency