Spec-Zone.ru › Dart 2

dart:isolate

Метод send

void send(
  1. Object? message
)

Отправляет асинхронное message по этому порту отправки соответствующему порту ReceivePort.

Переходный граф объектов message может содержать следующие объекты:

  • Null
  • bool
  • int
  • double
  • String
  • Список или Карта (элементы которых являются любым из этих типов)
  • TransferableTypedData
  • SendPort
  • Capability

Если отправитель и получатель изолированы совместно кодом (например, изолированные созданы с помощью Isolate.spawn), переходный граф объектов message может содержать любой объект, за исключением следующих:

  • Объекты с нативными ресурсами (подклассы, например, NativeFieldWrapperClass1). Объект Socket, например, обращается внутренне к объектам, у которых есть присоединённые нативные ресурсы, и поэтому не может быть отправлен.
  • ReceivePort
  • DynamicLibrary
  • Finalizable
  • Finalizer
  • NativeFinalizer
  • Указатель
  • UserTag
  • MirrorReference

Помимо этих исключений, может быть отправлен любой объект. Объекты, идентифицированные как неизменяемые (например, строки), будут использоваться совместно, а все остальные объекты будут скопированы.

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

Примечание: Из-за выбора реализации, принятого Dart VM для того, как замыкания представляют сохраненное состояние, в настоящее время замыкания могут захватывать больше состояния, чем им необходимо, что может привести к тому, что переходный граф будет больше, чем необходимо. Открытая ошибка для решения этой проблемы: http://dartbug.com/36983

Реализация

void send(Object? message);

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-isolate/SendPort/send.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API