使用Kotlin Coroutines时,最好使用GlobalScope.launch()还是继承GlobalScope?

问题描述 投票:0回答:1

我在公司看到过两种不同的Coroutines用途,我想知道哪种用途最好?

用法1

GlobalScope.launch(Dispatchers.IO) {
    loadMyData()
}

用法2

class MyClass(): GlobalScope {
. . .
    launch(Dispatchers.IO){
        loadMyData()
    }
. . . 
}

这个比那个好吗?各自的优点和缺点是什么?

kotlin kotlinx.coroutines
1个回答
0
投票

还有第三种选择

class MyClass(): CoroutineScope by GlobalScope

但是在考虑如何实现它时,你应该问一个简单的问题:你是否希望MyClass成为一个CoroutineScope,它也可以被代码库的其他部分使用?

大多数时候答案应该是否定的,因此最好直接使用GlobalScope

另外我假设,GlobalScope是在这里使用的范围,而不是详细说明为什么不考虑使用它。

© www.soinside.com 2019 - 2024. All rights reserved.