Spec-Zone.ru › Dart 2

dart:isolate

Класс Isolate

Изолированная среда выполнения Dart.

Весь код Dart выполняется в изоляте, и код может получать доступ к классам и значениям только из того же изолята. Различные изоляты могут обмениваться данными, отправляя значения через порты (см. ReceivePort, SendPort).

Объект Isolate — ссылка на изолят, обычно отличающийся от текущего изолята. Он представляет и может использоваться для управления другим изолятом.

При запуске нового изолята изолят, запускающий его, получает объект Isolate , представляющий новый изолят, если операция запуска выполняется успешно.

Изоляты выполняют код в собственной очереди событий, и каждое событие может запускать более мелкие задачи в вложенной очереди микрозадач.

Объект Isolate позволяет другим изолятам управлять циклом событий изолята, который он представляет, и проверять изолят, например, останавливая изолят или получая события, когда изолят имеет необработанную ошибку.

С помощью controlPort можно определить и получить доступ к управлению изолятом, а pauseCapability и terminateCapability обеспечивают защиту доступа к некоторым операциям управления. Например, вызов pause на объекте Isolate , созданном без pauseCapability, не имеет эффекта.

Объект Isolate , предоставленный операцией запуска, будет содержать порт управления и необходимые возможности для управления изолятом. Новые объекты изолятов могут быть созданы без некоторых из этих возможностей, если это необходимо, с использованием конструктора Isolate.Isolate.

Объект Isolate не может быть отправлен через SendPort, но порт управления и возможности могут быть отправлены и могут быть использованы для создания нового функционального объекта Isolate в изоляте порта получения.

Конструкторы

Isolate(SendPort controlPort, {Capability? pauseCapability, Capability? terminateCapability})
Создаёт новый объект Isolate с ограниченным набором возможностей.

Свойства

controlPort → SendPort
final
Порт управления, используемый для отправки управляющих сообщений в изолят.
debugName → String?
@Since("2.3"), read-only
Имя Isolate, отображаемое в целях отладки.
errors → Stream
read-only
Возвращает поток рассылки необработанных ошибок из изолята.
hashCode → int
read-only, inherited
Хеш-код этого объекта.
pauseCapability → Capability?
final
Возможность, предоставляющая возможность приостановить изолят.
runtimeType → Type
read-only, inherited
Представление типа объекта в среде выполнения.
terminateCapability → Capability?
final
Возможность, предоставляющая возможность завершить изолят.

Методы

addErrorListener(SendPort port) → void
Запрашивает отправку обратно в port необработанных ошибок изолята.
addOnExitListener(SendPort responsePort, {Object? response}) → void
Запрашивает сообщение о завершении в responsePort при завершении работы изолята.
kill({int priority = beforeNextEvent}) → void
Запрашивает остановку изолята.
noSuchMethod(Invocation invocation) → dynamic
inherited
Вызывается при обращении к несуществующему методу или свойству.
pause([Capability? resumeCapability]) → Capability
Запрашивает приостановку изолята.
ping(SendPort responsePort, {Object? response, int priority = immediate}) → void
Запрашивает отправку response в responsePort.
removeErrorListener(SendPort port) → void
Останавливает прослушивание необработанных ошибок изолята.
removeOnExitListener(SendPort responsePort) → void
Останавливает прослушивание сообщений о выходе из изолята.
resume(Capability resumeCapability) → void
Возобновляет приостановленный изолят.
setErrorsFatal(bool errorsAreFatal) → void
Устанавливает, будут ли необработанные ошибки завершать изолят.
toString() → String
inherited
Строковое представление этого объекта.

Операторы

operator ==(Object other) → bool
inherited
Оператор равенства.

Статические свойства

current → Isolate
read-only
Объект Isolate, представляющий текущий изолят.
packageConfig → Future<Uri?>
read-only
Местоположение конфигурации пакетов текущего изолята, если таковое имеется.

Статические методы

exit([SendPort? finalMessagePort, Object? message]) → Never
Синхронно завершает текущий изолят.
resolvePackageUri(Uri packageUri) → Future<Uri?>
Преобразует URI пакета в URI, не связанный с пакетом.
spawn<T>(void entryPoint(T message), T message, {bool paused = false, bool errorsAreFatal = true, SendPort? onExit, SendPort? onError, String? debugName}) → Future<Isolate>
Создаёт и запускает изолят, который использует тот же код, что и текущий изолят.
spawnUri(Uri uri, List<String> args, dynamic message, {bool paused = false, SendPort? onExit, SendPort? onError, bool errorsAreFatal = true, bool? checked, Map<String, String>? environment, Uri? packageRoot, Uri? packageConfig, bool automaticPackageResolution = false, String? debugName}) → Future<Isolate>
Создаёт и запускает изолят, который выполняет код из библиотеки с указанным URI.

Константы

beforeNextEvent → const int
Аргумент для ping и kill: запрос действия до следующего события.
1
immediate → const int
Аргумент для ping и kill: запрос немедленного действия.
0

© 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-class.html

Spec-Zone.ru

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