Функции передачи сообщений

Библиотека асинхронных агентов предоставляет несколько функций, которые позволяют передавать сообщения между компонентами.

Эти функции передачи сообщений используются с различными типами блоков сообщений. Для получения дополнительной информации о типах блоков сообщений, определенных Concurrency Runtime, см. раздел Асинхронные блоки сообщений.

Разделы

В этом разделе описываются следующие функции передачи сообщений:

отправка и asend

Функция concurrency::send отправляет сообщение указанной цели синхронно, а concurrency::asend — асинхронно. Функции send и asend ожидают, пока цель не подтвердит готовность или отказ принять сообщение.

Функция send ожидает, пока целевой объект не примет или отклонит сообщение, прежде чем он возвращается. Функция send возвращает true , если сообщение доставлено и false в противном случае. send Так как функция работает синхронно, send функция ожидает, пока целевой объект получит сообщение, прежде чем он возвращается.

И наоборот, asend функция не ожидает, пока целевой объект примет или отклонит сообщение, прежде чем она возвращается. Вместо этого функция asend возвращает true, если целевой объект принимает сообщение и впоследствии его обрабатывает. В противном случае asend возвращает false, чтобы указать, что целевой объект либо отказался от сообщения, либо отложил решение о том, принимать ли сообщение.

[В начало]

получение и try_receive

Функции concurrency::receive и concurrency::try_receive считывают данные из заданного источника. Функция receive ожидает доступности данных, а try_receive функция возвращается немедленно.

Используйте функцию receive, когда необходимо наличие данных для продолжения. Используйте функцию try_receive, если нельзя блокировать текущий контекст или нет необходимости в данных для продолжения.

[В начало]

Примеры

Примеры, использующие функции send и asend, и функции receive, см. в следующих разделах:

[В начало]

См. также

Библиотека асинхронных агентов
Асинхронные блоки сообщений
Функция send
Функция asend
Функция receive
Функция try_receive