我是协程的新手。我正在尝试将其添加到我的项目中。我也在使用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完成,然后将开始执行。