Funktionen zum Übergeben von Meldungen

Die Asynchronous Agents Library stellt mehrere Funktionen bereit, mit denen Sie Meldungen zwischen Komponenten übergeben können.

Diese Meldungsübergabefunktionen werden mit den verschiedenen Meldungsblocktypen verwendet. Weitere Informationen zu den Meldungsblocktypen, die von der Concurrency Runtime definiert werden, finden Sie unter Asynchrone Nachrichtenblöcke.

Abschnitte

In diesem Thema werden die folgenden Meldungsübergabefunktionen beschrieben:

  • send und asend

  • receive und try_receive

  • Beispiele

send und asend

Die Concurrency::send-Funktion sendet eine Meldung synchron an das angegebene Ziel, und die Concurrency::asend-Funktion sendet eine Meldung asynchron an das angegebene Ziel. Die Funktionen asend und die Funktion send warten, bis das Ziel angibt, dass es eine schließlich Meldung akzeptiert oder ablehnt wird.

Die send-Funktion wartet, bis das Ziel die Meldung akzeptiert oder ablehnt, bevor eine Rückgabe erfolgt. Die send-Funktion gibt true zurück, wenn die Meldung zugestellt wurde, andernfalls gibt sie false zurück. Da die send-Funktion synchron funktioniert, wartet die send-Funktion, bis das Ziel die Meldung empfängt, bevor eine Rückgabe erfolgt.

Die asend-Funktion wartet hingegen nicht, bis das Ziel die Meldung akzeptiert oder abgelehnt hat, bevor eine Rückgabe erfolgt. Die asend-Funktion gibt stattdessen true zurück, wenn das Ziel die Meldung schließlich akzeptiert. Andernfalls gibt asend false zurück, um anzugeben, dass das Ziel die Meldung entweder abgelehnt hat oder die Entscheidung, ob die Meldung angenommen wird, aufgeschoben hat.

[Nach oben]

receive und try_receive

Die Concurrency::receive-Funktion und die Concurrency::try_receive-Funktion lesen Daten aus einer angegebenen Quelle. Die receive-Funktion wartet, bis die Daten verfügbar sind, wohingegen die try_receive-Funktion sofort eine Rückgabe liefert.

Verwenden Sie die receive-Funktion, wenn Sie die Daten benötigen, um fortfahren zu können. Verwenden Sie die try_receive-Funktion, wenn Sie den aktuellen Kontext nicht blockieren dürfen oder die Daten nicht benötigen, um fortfahren zu können.

[Nach oben]

Beispiele

Beispiele für die Verwendung der Funktionen send, asend und receive finden Sie in den folgenden Themen:

[Nach oben]

Siehe auch

Referenz

send-Funktion

asend-Funktion

receive-Funktion

try_receive-Funktion

Konzepte

Asynchronous Agents Library

Asynchrone Nachrichtenblöcke

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

März 2011

Unterschiede zwischen der send-Funktion und der asend-Funktion erläutert.

Kundenfeedback.

August 2010

Links zu Beispielen hinzugefügt.

Informationsergänzung.