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

问题描述 投票:0回答:1

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

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

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

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

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

android kotlin kotlin-coroutines kotlin-android-extensions
1个回答
0
投票

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

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

是吗?

不,对不起。

© www.soinside.com 2019 - 2024. All rights reserved.