Функция delay
Функция delay приостанавливает выполнение текущей корутины
на указанное количество миллисекунд, не блокируя при этом поток.
Является suspend-функцией, поэтому может быть вызвана только
из другой suspend-функции или корутины. Принимает один параметр -
время задержки в миллисекундах типа Long.
Импорт
import kotlinx.coroutines.delay
Синтаксис
suspend fun delay(timeMillis: Long)
Пример
Приостановим выполнение корутины на 1 секунду:
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
println("Start")
delay(1000)
println("End after 1 second")
}
Результат выполнения кода:
Start
End after 1 second
Пример
Создадим анимацию с помощью последовательных задержек:
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
for (i in 1..5) {
println("Step $i")
delay(500)
}
println("Animation completed")
}
Результат выполнения кода:
Step 1
Step 2
Step 3
Step 4
Step 5
Animation completed
Пример
Использование задержки с разным временем:
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
println("Short delay: 100ms")
delay(100)
println("Medium delay: 1.5 seconds")
delay(1500)
println("Long delay: 3 seconds")
delay(3000)
println("All delays completed")
}
Результат выполнения кода:
Short delay: 100ms
Medium delay: 1.5 seconds
Long delay: 3 seconds
All delays completed
Пример
Задержка в параллельных корутинах:
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
launch {
delay(1000)
println("Coroutine 1 completed")
}
launch {
delay(2000)
println("Coroutine 2 completed")
}
println("Main coroutine waiting")
}
Результат выполнения кода:
Main coroutine waiting
Coroutine 1 completed
Coroutine 2 completed
Смотрите также
-
функцию
runBlocking,
которая создает блокирующий контекст для корутин -
функцию
launch,
которая запускает новую корутину -
функцию
async,
которая запускает корутину с возвратом результата -
функцию
withContext,
которая переключает контекст выполнения корутины