Spec-Zone.ru › Dart 2

dart:isolate

Метод exit

Never exit(
  1. [SendPort? finalMessagePort,
  2. Object? message]
)

Синхронно завершает текущий изолированный процесс.

Эта операция потенциально опасна и должна использоваться с осторожностью. Изолированный процесс прекращает свою работу немедленно. Он вызывает исключение, если необязательный message не соответствует ограничениям на то, что может быть отправлено из одного изолированного процесса в другой (подробнее см. SendPort.send). Он также вызывает исключение, если finalMessagePort связан с изолированным процессом, созданным вне текущей группы изолированных процессов, созданным с помощью spawnUri.

При успешном выполнении вызов этого метода не возвращает значение. Ожидающие finally блоки не выполняются, поток управления не возвращается в цикл обработки событий, запланированные асинхронные запросы никогда не выполняются, и даже ожидающие команды управления изолированным процессом могут быть проигнорированы. (Изолированный процесс отправит сообщения на уже зарегистрированные порты, используя Isolate.addOnExitListener, но дальнейший код Dart в изолированном процессе не будет выполняться.)

Если finalMessagePort предоставлен и message может быть отправлено через него (подробнее см. SendPort.send), то сообщение отправляется через этот порт как последняя операция текущего изолированного процесса. Изолированный процесс завершается немедленно после возврата вызова SendPort.send.

Если порт является нативным портом — предоставленным ReceivePort.sendPort или RawReceivePort.sendPort — система может отправить это последнее сообщение более эффективно, чем обычное взаимодействие через порты между работающими изолированными процессами. В этих случаях граф объекта последнего сообщения будет переназначен принимающему изолированному процессу без копирования. Кроме того, принимающий изолированный процесс в большинстве случаев сможет принять сообщение за постоянное время.

Реализация

external static Never exit([SendPort? finalMessagePort, 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/Isolate/exit.html

Spec-Zone.ru

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