【问题标题】:What is the difference between withContext(Dispatchers.IO) and with(Dispatchers.IO) in Kotlin?Kotlin 中的 withContext(Dispatchers.IO) 和 with(Dispatchers.IO) 有什么区别?
【发布时间】:2020-06-23 14:49:41
【问题描述】:

我是协程的新手,试图在不同的线程中运行一些代码,我遇到了两个听起来相似的方法withContextwith(Dispatcher)。两者有什么区别?我假设它们都运行在不同线程中的代码块中传递的代码,但我不确定。

请详细说明

【问题讨论】:

  • 为什么是 [java] 标签?
  • with 的使用几乎可以肯定是一个错误。

标签: android kotlin kotlin-coroutines


【解决方案1】:

with() 只是一个scope function,与协程无关。它不会影响您的代码运行所在的线程。

withContext() 是一种切换协程上下文的方法,包括切换到不同的调度程序。所以,如果你的目标是“在不同的线程上运行它”,你需要withContext(),而不是with()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2020-04-24
    • 2019-10-09
    相关资源
    最近更新 更多