【发布时间】:2020-09-22 21:02:46
【问题描述】:
从启动获取作业时,作业正确完成
fun testCoroutineScope() = runBlocking {
val scope = CoroutineScope(Dispatchers.Default)
val job = scope.launch {
delay(200)
println("Job done")
}
delay(500)
println(job.isCompleted)
}
输出:
Job done
true
但当你合并自己的工作时,情况并非如此。
fun testCoroutineScope() = runBlocking {
var job = Job()
val scope = CoroutineScope(Dispatchers.Default + job)
scope.launch {
delay(200)
println("Job done")
}
delay(500)
println(job.isCompleted)
}
输出:
Job done
false
看起来这项工作从未完成。这是为什么呢?
【问题讨论】: