首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类中的GlobalScope.launch(coroutineContext) vs CoroutineScope ()扩展了CoroutineScope

类中的GlobalScope.launch(coroutineContext) vs CoroutineScope ()扩展了CoroutineScope
EN

Stack Overflow用户
提问于 2019-09-14 05:11:11
回答 1查看 1.3K关注 0票数 0

如下所示,

  1. 两个launchWithXXX函数会在MainScope中运行吗?它们是否为运行两个作业创建了相同的协同环境?
  2. 当调用dispose()时,这两个函数会被取消吗?
代码语言:javascript
复制
class A : CoroutineScope by MainScope() {

    fun launchWithGlobalScope() {
        GlobalScope.launch(coroutineContext) {
            // Run jobs
        }
    }

    fun launchWithClassScope() {
        launch {
            // Run jobs too
        }
    }

    fun dispose() {
        cancel()
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-14 07:02:40

回答1:不。MainScope定义了一个对UI组件执行操作的范围。所以它在平台的UI线程中运行。GlobalScope是一个具有自己线程池的作用域,并使用其中的一个线程运行协同器。

回答2:cancel只停止示例中的MainScope和使用此范围创建的所有协同。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57932645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档