Dela via


Funktioner för meddelandeöverföring

Biblioteket asynkrona agenter innehåller flera funktioner som gör att du kan skicka meddelanden mellan komponenter.

Dessa funktioner för meddelandeöverföring används med de olika typerna av meddelandeblock. Mer information om de typer av meddelandeblock som definieras av Concurrency Runtime finns i Asynkrona meddelandeblock.

Sektioner

I det här avsnittet beskrivs följande funktioner för meddelandeöverföring:

send och asend

Funktionen concurrency::send skickar ett meddelande till det angivna målet synkront och funktionen concurrency::asend skickar ett meddelande till det angivna målet asynkront. Både send- och asend-funktionerna väntar tills målet anger att det så småningom kommer att acceptera eller avvisa meddelandet.

Funktionen send väntar tills målet accepterar eller avböjer meddelandet innan det returneras. Funktionen send returnerar true om meddelandet levererades och false annars. Eftersom funktionen send fungerar synkront send väntar funktionen på att målet ska ta emot meddelandet innan det returneras.

Omvänt väntar inte funktionen asend på att målet ska acceptera eller avvisa meddelandet innan den återgår. I stället returnerar funktionen asendtrue om målet accepterar meddelandet och kommer så småningom att ta det. Annars asend returneras false för att indikera att målet antingen avböjde meddelandet eller sköt upp beslutet om att ta meddelandet.

[Topp]

ta emot och försöka ta emot

concurrency::receive och concurrency::try_receive funktionerna läser data från en viss källa. Funktionen receive väntar på att data ska bli tillgängliga, medan try_receive funktionen returnerar omedelbart.

receive Använd funktionen när du måste ha data för att kunna fortsätta. try_receive Använd funktionen om du inte får blockera den aktuella kontexten eller om du inte behöver ha data för att fortsätta.

[Topp]

Exempel

Exempel som använder funktionerna send, asend och receive finns i följande avsnitt:

[Topp]

Se även

Asynkront agentbibliotek
Asynkrona meddelandeblock
send-funktion
asendFunction
ta emot funktion
try_receive-funktion