kotlin: 用withContext指定dispatcher
一,代码:
函数:
//得到用户信息,演示指定dispatcher
suspend fun getUserInfo(): String {
logX("Before IO Context.")
withContext(Dispatchers.IO) {
logX("In IO Context.")
delay(1000L)
}
logX("After IO Context.")
return "BoyCoder"
}
调用
//处理按钮点击事件
binding.button1.setOnClickListener {
runBlocking {
val user = getUserInfo()
logX(user)
}
}
二,测试效果:
可以看到,我们在 withContext() 这里指定线程池以后,
Lambda 当中的代码就会被分发到 DefaultDispatcher 线程池中去执行,
而它外部的所有代码仍然还是运行在 main 之上