CoroutineScope.cancel 求教


#1

在启动的协程任务内部取消,scope作用域可以再启动一个协程任务执行。但是在任务外取消,作用域就启动不了协程任务了,查到Thread.cuurentThread 所在线程为null,请问这两者具体区别在哪,在哪里可以看到相关代码

两种取消方式:
mainScope.launch (Dispatchers.Default) {
cancel()
}

mainScope.cancel()


#2

你可以使用 IntelliJ IDEA,然后对两个 cancel 进行 Ctrl+B 或者 Ctrl+鼠标左键。


#3

image
launch 会创建一个新的 scope,所以你在 launch 内部取消 launch 所创建的 scope 不会影响到外部的 mainScope。
我猜是这样。


京ICP备16022265号-2 Kotlin China 2017 - 2018