安卓系统.如何在不阻塞UI的情况下更正启动协同程序



我是协程的新手。我正在尝试将其添加到我的项目中。我也在使用MVVM。在文档中,我阅读了viewModelScope.launch { }:

在不阻塞当前线程的情况下启动新的协同程序

但与此同时,我经常看到这样的代码结构:

viewModelScope.launch {
launch {
// call some suspend fun here
}
}

如果文档中说viewModelScope.launch { }在不阻塞当前线程的情况下启动了一个新的协程,为什么这里还有另一个launch{}

这样写难道不够吗:

viewModelScope.launch {
// call some suspend fun here
}

在某些情况下,这样的构造(在viewModelScope.slaunch中启动(会有用吗?也许我不明白什么,请帮帮我。

写入

viewModelScope.launch {
// call some suspend fun here
}

足以在不阻塞UI的情况下启动协同程序并执行挂起函数。

launch中的launch用于并行启动任务,例如:

viewModelScope.launch {
launch {
// call task 1
task1()
}
launch {
// call task 2
task2()
}
}

CCD_ 6和CCD_ 7是CCD_。

但如果我们像下面这样写:

viewModelScope.launch {
task1()
task2()
}

CCD_ 9将等待直到CCD_ 10完成,然后将开始执行。

相关内容

  • 没有找到相关文章

最新更新