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

时间:2020-01-08 13:29:00

标签: android kotlin kotlin-coroutines kotlin-android-extensions

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

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

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

到目前为止,Android Dispatchers.Default的默认设置为Dispatchers.Main。是吗?

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

1 个答案:

答案 0 :(得分:8)

然后我发现它默认为viewModelScope.launch(Dispatchers.Default){}。

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

是吗?

不,对不起。