Condividi tramite


Funzioni di passaggio dei messaggi

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

Queste funzioni di passaggio dei messaggi vengono utilizzate con vari tipi di blocco dei messaggi.Per ulteriori informazioni sui tipi di blocco dei messaggi definiti dal runtime di concorrenza, vedere Blocchi dei messaggi asincroni.

Sezioni

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

  • send e asend

  • receive e try_receive

  • Esempi

send e asend

Il concurrency::send funzione Invia un messaggio alla destinazione specificata in modo sincrono e il concurrency::asend funzione Invia un messaggio alla destinazione specificata in modo asincrono.Entrambe le funzioni send e asend attendono finché la destinazione non indica l'accettazione o il rifiuto del messaggio.

La funzione di send attende finché la destinazione non accetta o rifiuta il messaggio prima di restituire un valore.La funzione send restituisce true se il messaggio è stato recapito; in caso contrario, false.Poiché la funzione send viene utilizzata in modo sincrono, la funzione send attende la ricezione del messaggio da parte della destinazione prima di restituire un valore.

Al contrario, la funzione asend non attende l'accettazione o il rifiuto del messaggio da parte della destinazione prima di restituire un valore.La funzione asend restituisce invece true se la destinazione accetta il messaggio;in caso contrario, asend restituisce false per indicare che la destinazione ha rifiutato il messaggio o ha posticipato la decisione sull'accettazione del messaggio.

Top

receive e try_receive

Il concurrency::receive e concurrency::try_receive funzioni di leggere i dati da una determinata origine.La funzione receive attende che i dati diventino disponibili, mentre la funzione try_receive restituisce immediatamente un valore.

Utilizzare la funzione receive quando è necessario avere i dati per continuare.Utilizzare la funzione try_receive se non è necessario bloccare il contesto corrente o non è necessario avere i dati per continuare.

Top

Esempi

Per gli esempi in cui vengono utilizzate le funzioni send, asend e receive vedere gli argomenti seguenti:

Top

Vedere anche

Riferimenti

Funzione send

Funzione asend

Funzione receive

Funzione try_receive

Concetti

Libreria di agenti asincroni

Blocchi dei messaggi asincroni