Funktionen zum Übergeben von Meldungen
Die Bibliothek für asynchrone Agents bietet mehrere Funktionen, mit denen Sie Nachrichten zwischen Komponenten übergeben können.
Diese Nachrichtenübergabefunktionen werden mit den verschiedenen Nachrichtenblocktypen verwendet. Weitere Informationen zu den Nachrichtenblocktypen, die von der Parallelitätslaufzeit definiert werden, finden Sie unter "Asynchrone Nachrichtenblöcke".
Abschnitte
In diesem Thema werden die folgenden Nachrichtenübergabefunktionen beschrieben:
senden und senden
Die Parallelitätsfunktion::send sendet eine Nachricht synchron an das angegebene Ziel, und die Parallelität::asend-Funktion sendet asynchron eine Nachricht an das angegebene Ziel. Sowohl die Funktionen als asend
auch die send
Funktionen warten, bis das Ziel angibt, dass sie die Nachricht schließlich annehmen oder ablehnen wird.
Die send
Funktion wartet, bis das Ziel die Nachricht akzeptiert oder ablehnt, bevor sie zurückgegeben wird. Die send
Funktion gibt zurück true
, ob die Nachricht zugestellt wurde und false
andernfalls. Da die Funktion synchron funktioniert, wartet die send
send
Funktion, bis das Ziel die Nachricht empfängt, bevor sie zurückgegeben wird.
Umgekehrt wartet die asend
Funktion nicht, bis das Ziel die Nachricht akzeptiert oder abgelehnt hat, bevor sie zurückgegeben wird. Stattdessen gibt die asend
Funktion zurück true
, wenn das Ziel die Nachricht akzeptiert und es schließlich in Anspruch nimmt. Andernfalls wird zurückgegebenfalse
, um anzugeben, dass das Ziel entweder die Nachricht abgelehnt oder die Entscheidung darüber verschoben hat, asend
ob die Nachricht angenommen werden soll.
empfangen und try_receive
Die Parallelität::empfangen und parallelität::try_receive Funktionen lesen Daten aus einer bestimmten Quelle. Die receive
Funktion wartet darauf, dass Daten verfügbar sind, während die try_receive
Funktion sofort zurückgegeben wird.
Verwenden Sie die receive
Funktion, wenn Die Daten fortgesetzt werden müssen. Verwenden Sie die try_receive
Funktion, wenn Sie den aktuellen Kontext nicht blockieren dürfen oder die Daten nicht fortsetzen müssen.
Beispiele
Beispiele für die Verwendung von send
und und asend
und receive
Funktionen finden Sie in den folgenden Themen:
Vorgehensweise: Implementieren verschiedener Producer-Consumer-Muster
Vorgehensweise: Bereitstellen von Arbeitsfunktionen für die call- und transformer-Klassen
Vorgehensweise: Verwenden von transformer in einer Datenpipeline
Vorgehensweise: Senden einer Nachricht in regelmäßigen Intervallen
Siehe auch
Asynchrone Agents Library
Asynchrone Nachrichtenblöcke
send-Funktion
asend-Funktion
receive-Funktion
try_receive-Funktion