【发布时间】:2018-06-15 22:27:02
【问题描述】:
在我的程序的几个点,我使用launch 来启动一个执行一些后台任务的协程。然后,在某个时候,我从main 函数返回。我的程序的简化版本可能如下所示:
fun main(args : Array<String>)
{
launch {
delay(10000) // some long running operation
println("finished")
}
}
现在,协程按预期启动并开始运行操作 - 然后程序退出。如果我不从main 返回或将launch 替换为thread,则一切正常。 那么我该怎么做,鉴于我没有跟踪在我的程序中启动的所有协程(因此我不能使用 .join() 或 .await()),确保所有协程都完成在我的程序退出之前?
【问题讨论】:
标签: kotlin coroutine kotlinx.coroutines