gpt4 book ai didi

kotlin - 在声明挂起函数时传达预期的线程类型(IO、默认、主线程)

转载 作者:行者123 更新时间:2023-12-01 08:22:12 25 4
gpt4 key购买 nike

使用 suspend 设计 API 时函数,有时我想表达这个函数应该在一个 IO 线程上调用。其他时候必须这样做。

通常看起来很明显;例如,应该使用 Dispatchers.IO 调用数据库调用。但如果它是一个接口(interface)函数,那么调用者不能假设这一点。

这里最好的方法是什么?

最佳答案

如果 suspend函数确实必须在特定的上下文中运行,然后直接在函数体中声明它。

suspend fun doInIO() = withContext(Dispatchers.IO) {

}

如果调用者应该能够更改调度程序,则该函数可以将调度程序添加为默认参数。
suspend fun doInIO(context: CoroutineContext = Dispatchers.IO) = withContext(context) {

}

关于kotlin - 在声明挂起函数时传达预期的线程类型(IO、默认、主线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53000562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com