Kotlin 协程中 Dispatchers.Main 和 Dispatchers.Default 有什么区别?

What is the difference between Dispatchers.Main and Dispatchers.Default in Kotlin coroutines?

Kotlin协程中的Dispatchers.Main和Dispatchers.Default有什么区别?

我使用了 viewModelScope.launch {} 并且启动块按预期在 UI 线程上执行。然后发现默认是viewModelScope.launch(Dispatchers.Default) {}.

这让我有点困惑,因为我认为我应该使用 Dispatchers.Main 在 UI 线程上执行操作。

目前看来 Android Dispatchers.Default 上的默认设置为 Dispatchers.Main。是吗?

如果我使用一个或另一个或者它们可以互换,有什么缺点吗?如果它们在 Android 上可以互换,如果将来我添加对 kotlin 多平台的支持,是否会影响某些事情?

Then I discovered that it defaults to viewModelScope.launch(Dispatchers.Default) {}.

否,viewModelScope.launch() 默认为 Dispatchers.Main。 Google 覆盖普通默认 launch() 调度程序,即 Dispatchers.Default。我建议总是指定调度程序,而不是让人们猜测在什么情况下使用哪个调度程序。

Is that right?

不,抱歉。