Spec-Zone.ru › Dart 1

dart:isolate

Метод spawn

Future<Isolate> spawn(void entryPoint(message), message, { bool paused: false, bool errorsAreFatal, SendPort onExit, SendPort onError })

Создаёт и запускает изолированное выполнение, которое использует тот же код, что и текущее изолированное выполнение.

Аргумент entryPoint указывает начальную функцию для вызова в запущенном изолированном выполнении. Функция входа вызывается в новом изолированном выполнении с message в качестве единственного аргумента.

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

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

Если параметр paused установлен в значение true, изолированное выполнение будет запущено в приостановленном состоянии, сразу перед вызовом функции entryPoint с аргументом message, как если бы это было сделано при помощи начального вызова isolate.pause(isolate.pauseCapability). Чтобы возобновить изолированное выполнение, вызовите isolate.resume(isolate.pauseCapability).

Если параметры errorAreFatal, onExit и/или onError указаны, изолированное выполнение будет действовать так, как если бы соответственно были вызваны методы setErrorsFatal, addOnExitListener и addErrorListener с соответствующим параметром и были обработаны до начала работы изолированного выполнения.

Если errorsAreFatal опущено, платформа может выбрать поведение по умолчанию или унаследовать поведение текущего изолированного выполнения.

Вы также можете вызвать методы setErrorsFatal, addOnExitListener и addErrorListener на возвращённом изолированном выполнении, но если оно было запущено как paused, оно может уже завершиться до того, как эти методы успеют завершиться.

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

Исходный код

external static Future<Isolate> spawn(void entryPoint(message), var message,
    {bool paused: false,
    bool errorsAreFatal,
    SendPort onExit,
    SendPort onError});

© 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/spawn.html

Spec-Zone.ru

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