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

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

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

到目前为止,Android 上的 Dispatchers.Default 看起来默认为 Dispatchers.Main 。是对的吗?

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

最佳答案



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



不,对不起。

关于android - Kotlin 协程中的 Dispatchers.Main 和 Dispatchers.Default 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59646948/

10-12 04:09