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?
不,抱歉。
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?
不,抱歉。