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 之上

posted @ 2025-08-02 14:59  刘宏缔的架构森林  阅读(29)  评论(0)    收藏  举报