Асинхронность
Выполнение 2 и более задач
в одно и то же время
Async
Async обычный
Такой async
просто есть для того, чтобы запустить задачи параллельно.
async {
... // Все записаные задачи будут выполняться параллельно от основного потока
}
Пример
async {
npc lookAt { players.first() }
}
Async контролируемый
Уже такой async
вы сможете контролировать его работу.
Просто привяжите ваш async
к переменной
val myAsyncID = async {
... // Асинхронные задачи
}
/* Управление async */
myAsyncID.resume() // Возобновить выполнение задач
myAsyncID.stop() // Прекратить выполнение задач
myAsyncID.join() // Приостанавливает основную часть скрипта до завершения задач внутри async