我在公司中看到了协程的两种不同用法,我想知道哪种最好?
用法1
GlobalScope.launch(Dispatchers.IO) {
loadMyData()
}
用法2
class MyClass(): GlobalScope {
. . .
launch(Dispatchers.IO){
loadMyData()
}
. . .
}
一个比另一个好吗?每种都有什么优缺点?
答案 0 :(得分:0)
还有第三种选择
class MyClass(): CoroutineScope by GlobalScope
但是在考虑如何实现该问题时,您应该问一个简单的问题:您是否希望MyClass
成为CoroutineScope
并可以被代码库的其他部分使用? >
大多数情况下,答案应该为否,因此直接使用GlobalScope
可能会更好。
我还假设GlobalScope
是这里使用的范围,而没有详细说明为什么不考虑使用它。