作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从数据库中填写对象列表。在将值(value)传递给项目之前,我希望所有项目都完成。这里是否有任何简短的方法调用 await() 来等待每个项目。我想做干净的代码,可能是一些设计模式或技巧?
for (x in 0..10) {
launch {
withContext(Dispatchers.IO){
list.add(repository.getLastGame(x) ?: MutableLiveData<Task>(Task(cabinId = x)))
}
}
}
items.value = list
最佳答案
coroutineScope { // limits the scope of concurrency
(0..10).map { // is a shorter way to write IntRange(0, 10)
async(Dispatchers.IO) { // async means "concurrently", context goes here
list.add(repository.getLastGame(x) ?: MutableLiveData<Task>(Task(cabinId = x)))
}
}.awaitAll() // waits all of them
} // if any task crashes -- this scope ends with exception
关于android - 如何在 for 循环中启动 10 个协程并等待它们全部完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877419/
我是一名优秀的程序员,十分优秀!