试图掌握协程。我期望这段代码不打印任何内容。但是,它会打印“已完成的工作”,因此取消操作无济于事。怎么了
suspend fun foo() = coroutineScope {
launch { doSomeWork() }
}
suspend fun doSomeWork() {
delay(10000)
println("Work done")
}
suspend fun main() {
val fooResult = foo()
fooResult.cancel()
}
答案 0 :(得分:0)
我终于明白了。主协程在“ coroutineScope”调用上挂起,这就是为什么