kotlin协程在while循环中等待
kotlin coroutine wait in while loop
我有一个无限循环
runBlocking(
context = Dispatchers.IO
) {
while (true) {
launch(
context = exceptionHandler
) {
println("time reached")
delay(
timeMillis = 3_600_000
)
}
}
}
我希望 while
每隔一小时打印一次“到达时间”。
但是当我 运行 程序时,控制台无限地打印“time reached”!
我该如何解决
您可以通过将 while
循环移动到协程构建器中来修复它:
runBlocking(context = Dispatchers.IO) {
launch(context = exceptionHandler) {
while (true) {
println("time reached")
delay(timeMillis = 3_600_000)
}
}
}
我有一个无限循环
runBlocking(
context = Dispatchers.IO
) {
while (true) {
launch(
context = exceptionHandler
) {
println("time reached")
delay(
timeMillis = 3_600_000
)
}
}
}
我希望 while
每隔一小时打印一次“到达时间”。
但是当我 运行 程序时,控制台无限地打印“time reached”!
我该如何解决
您可以通过将 while
循环移动到协程构建器中来修复它:
runBlocking(context = Dispatchers.IO) {
launch(context = exceptionHandler) {
while (true) {
println("time reached")
delay(timeMillis = 3_600_000)
}
}
}