Класс Isolate
Изолированная среда выполнения Dart.
Весь код Dart выполняется в изоляте, и код может обращаться к классам и значениям только из того же изолята. Разные изоляты могут обмениваться данными, отправляя значения через порты (см. ReceivePort, SendPort).
Объект Isolate представляет собой ссылку на изолят, обычно отличный от текущего изолята. Он представляет и может быть использован для управления другим изолятом.
При создании нового изолята изолят, его создавший, получает объект Isolate , представляющий новый изолят, если операция создания прошла успешно.
Изоляты выполняют код в собственном цикле событий, и каждое событие может запускать меньшие задачи в вложенной очереди микроб задач.
Объект Isolate позволяет другим изолятам управлять циклом событий изолята, который он представляет, и просматривать изолят, например, останавливая его или получая события, когда в изоляте возникла непредвиденная ошибка.
Порт controlPort идентифицирует и предоставляет доступ к управлению изолятом, а pauseCapability и terminateCapability защищают доступ к некоторым операциям управления. Например, вызов pause на объекте Isolate, созданном без pauseCapability, не оказывает никакого влияния.
Объект Isolate , предоставленный операцией создания, будет содержать порт управления и необходимые возможности для управления изолятом. Новые объекты изолятов могут быть созданы без некоторых из этих возможностей, если необходимо, используя конструктор Isolate.Isolate.
Объект Isolate не может быть отправлен через SendPort, но порт управления и возможности могут быть отправлены и могут использоваться для создания нового функционирующего объекта Isolate в изоляте порта получателя.
Константы
- BEFORE_NEXT_EVENT → int
-
Аргумент для
pingиkill: Запрос на выполнение действия перед следующим событием.1 - IMMEDIATE → int
-
Аргумент для
pingиkill: Запрос на немедленное выполнение действия.0
Статические свойства
- current → Isolate только для чтения
-
Возвращает объект
Isolate, представляющий текущий изолят. - packageConfig → Future<Uri> только для чтения
-
Возвращает корень пакета текущего изолята, если таковой имеется.
- packageRoot → Future<Uri> только для чтения
-
Возвращает корень пакета текущего изолята, если таковой имеется.
Статические методы
- resolvePackageUri(
Uri packageUri) → Future<Uri> -
Преобразует URI пакета в URI, не относящийся к пакету.
- spawn(
void entryPoint(message), message, { bool paused: false, bool errorsAreFatal, SendPort onExit, SendPort onError }) → Future<Isolate> -
Создает и запускает изолят, который использует тот же код, что и текущий изолят.
- spawnUri(
Uri uri, List<String> args, message, { bool paused: false, SendPort onExit, SendPort onError, bool errorsAreFatal, bool checked, Map<String, String> environment, Uri packageRoot, Uri packageConfig, bool automaticPackageResolution: false }) → Future<Isolate> -
Создает и запускает изолят, который выполняет код из библиотеки с указанным URI.
Конструкторы
- Isolate(SendPort controlPort, { Capability pauseCapability, Capability terminateCapability })
-
Создает новый объект Isolate с ограниченным набором возможностей.
Свойства экземпляра
- controlPort → SendPort final
-
Порт управления, используемый для отправки управляющих сообщений в изолят.
- errors → Stream только для чтения
-
Возвращает поток необработанных ошибок из изолята.
- pauseCapability → Capability final
-
Возможность, предоставляющая возможность приостановить изолят.
- terminateCapability → Capability final
-
Возможность, предоставляющая возможность завершить изолят.
- hashCode → int только для чтения, унаследованное
-
Хеш-код этого объекта.
- runtimeType → Type только для чтения, унаследованное
-
Представление runtime-типа объекта.
Операторы
- operator ==(
other) → bool унаследованное -
Оператор равенства.
Методы экземпляра
- addErrorListener(
SendPort port) → void -
Запрашивает, чтобы необработанные ошибки изолята отправлялись обратно в
port. - addOnExitListener(
SendPort responsePort, { Object response }) → void -
Запрашивает сообщение о завершении
responsePortпри завершении изолята. - kill(
{int priority: BEFORE_NEXT_EVENT }) → void -
Запрашивает изолят завершить работу.
- 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 -
Устанавливает, будут ли необработанные ошибки завершать изолят.
- noSuchMethod(
Invocation invocation) → dynamic унаследованное -
Вызывается при обращении к несуществующему методу или свойству.
- toString(
) → String унаследованное -
Возвращает строковое представление этого объекта.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-isolate/Isolate-class.html