Condividi tramite


Funzioni di passaggio dei messaggi

La libreria degli agenti asincroni fornisce diverse funzioni che consentono di passare messaggi tra i componenti.

Queste funzioni di passaggio di messaggi vengono usate con i vari tipi di blocco di messaggi. Per altre informazioni sui tipi di blocco di messaggi definiti dal runtime di concorrenza, vedere Blocchi messaggi asincroni.

Sezioni

In questo argomento vengono descritte le funzioni di passaggio dei messaggi seguenti:

send and asend

La funzione concurrency::send invia un messaggio alla destinazione specificata in modo sincrono e la funzione concurrency::asend invia un messaggio alla destinazione specificata in modo asincrono. Entrambe le send funzioni e asend attendono fino a quando la destinazione non indica che accetterà o rifiuta il messaggio.

La send funzione attende fino a quando la destinazione non accetta o rifiuta il messaggio prima che venga restituito. La send funzione restituisce true se il messaggio è stato recapitato e false in caso contrario. Poiché la send funzione funziona in modo sincrono, la send funzione attende che la destinazione riceva il messaggio prima che venga restituito.

Al contrario, la asend funzione non attende che la destinazione accetti o rifiuta il messaggio prima che venga restituito. La funzione restituisce asend true invece se la destinazione accetta il messaggio e la accetta. In caso contrario, restituisce asend false per indicare che la destinazione ha rifiutato il messaggio o ha posticipato la decisione su se accettare il messaggio.

[Torna all'inizio]

ricevere e try_receive

Le funzioni concurrency::receive e concurrency::try_receive leggono i dati da una determinata origine. La receive funzione attende che i dati diventino disponibili, mentre la try_receive funzione restituisce immediatamente.

Usare la receive funzione quando è necessario disporre dei dati per continuare. Usare la try_receive funzione se non è necessario bloccare il contesto corrente o non è necessario che i dati continuino.

[Torna all'inizio]

Esempi

Per esempi che usano le send funzioni e asende receive , vedere gli argomenti seguenti:

[Torna all'inizio]

Vedi anche

Libreria di agenti asincroni
Blocchi dei messaggi asincroni
Funzione send
Funzione asend
Funzione receive
Funzione try_receive