Метод pause
Capability pause(Запрашивает приостановку изолированного потока.
Когда изолированный поток получает команду приостановки, он прекращает обработку событий из очереди цикла событий. Он по-прежнему может добавлять новые события в очередь в ответ, например, на таймеры или сообщения из портов приема. При возобновлении работы изолированного потока он начинает обрабатывать уже помещенные в очередь события.
Запрос на приостановку отправляется через порт команд изолированного потока, который минует цикл событий получающего изолированного потока. Приостановка вступает в силу при получении запроса, приостанавливая цикл событий в том состоянии, в котором он находился в этот момент.
resumeCapability используется для идентификации приостановки, и должен быть использован повторно для завершения приостановки с помощью resume. Если resumeCapability опущено, вместо этого создается и используется новый объект capability.
Если изолированный поток приостанавливается более одного раза с использованием одного и того же capability, для завершения приостановки потребуется только одно возобновление с этим capability.
Если изолированный поток приостанавливается с использованием более чем одного capability, каждое приостановление должно быть индивидуально завершено перед возобновлением работы изолированного потока.
Возвращает capability, который необходимо использовать для завершения приостановки. Это либо resumeCapability, либо новый capability, когда resumeCapability опущено.
Если pauseCapability является null, или это не capability приостановки изолированного потока, идентифицированного по controlPort, запрос на приостановку игнорируется получающим изолированным потоком.
Исходный код
Capability pause([Capability resumeCapability]) {
resumeCapability ??= new Capability();
_pause(resumeCapability);
return resumeCapability;
}
© 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/pause.html