Kotlin 协程范围定义

想象一下,我有一个名为 的协程范围CryptographyScope

object CryptographyScope : CoroutineScope {
     override val coroutineContext: CoroutineContext =
        Dispatchers.IO + CoroutineName("CryptographyScope")
}

因此,在我的应用程序的许多地方,我都调用CryptographyScope.async.

CryptographyScope.async {
    cryptographyService.decrypt(value) 
} 
  • 当其中一个cryptographyService.decrypt(value)失败并抛出异常时会发生什么它是否会CryptographyScope在执行时取消应用程序中使用的每个协程

  • CryptographyScope 应该是单例吗?

CoroutineScope 定义了一个范围,您可以在其中包含、分隔和跟踪所有并发操作,并将它们与应用程序实体的生命周期联系起来。

我打算decrypt通过我创建的自定义范围调用CryptographyScope但是,这是不对的,因为我没有任何具有定义生命周期的实体,因此将无法避免发生泄漏。

正确的做法是:

fun decryptAll() = coroutineScope {
    async { 
        cryptographyService.decrypt(value1) 
    }
    async { 
        cryptographyService.decrypt(value2) 
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

协程范围的构造函数中的协程上下文的Kotlin组成

来自分类Dev

Android Kotlin协程:使用Global范围是否是反模式?

来自分类Dev

NetworkBoundResource与Kotlin协程

来自分类Dev

在Kotlin中测试协程

来自分类Dev

Kotlin 协程,持续更新

来自分类Dev

在Linux上的Kotlin / Native中用范围协程调用类方法会引发异常

来自分类Dev

Kotlin - 协程范围,为什么我的异步不被执行?

来自分类Dev

Kotlin协程壁垒:等待所有协程完成

来自分类常见问题

Kotlin协程如何比RxKotlin更好?

来自分类Dev

Kotlin协程列表返回空值

来自分类Dev

关于Kotlin协程取消的问题

来自分类Dev

Kotlin协程主管取消作业的行为

来自分类Dev

未解决的参考:等待。Kotlin协程

来自分类Dev

Kotlin协程-延迟,如何运作?

来自分类Dev

Kotlin协程的正确使用方法

来自分类Dev

从内部嵌套的协程返回标签Kotlin

来自分类Dev

使用协程的Kotlin / Native多线程

来自分类Dev

Kotlin协程比线程花费的时间更长

来自分类Dev

具有Kotlin协程的FusedLocationProviderClient

来自分类Dev

Kotlin协程执行的优先级

来自分类常见问题

Kotlin协程:与工作计划有关。(invokeOnCompletion)

来自分类Dev

在Kotlin中使用线程或协程更好吗?

来自分类Dev

如何从Android Kotlin协程获取结果到UI线程

来自分类Dev

Kotlin协程中的可见性

来自分类Dev

用Kotlin协程和流程测试Room DAO的方法

来自分类Dev

Kotlin协程异常处理-如何抽象try-catch

来自分类Dev

使用Dispatchers.IO进行Kotlin协程测试

来自分类Dev

Kotlin协程会阻止Android中的主线程

来自分类Dev

Kotlin:杀死一个不合作的协程