我需要在for循环中启动许多协程,并在所有任务完成后在主线程中获得回调。
最好的方法是什么?
//Main thread
fun foo(){
messageRepo.getMessages().forEach {message->
GlobalScope.launch {
doHardWork(message)
}
}
// here I need some callback to the Main thread that all work is done.
}
在CoroutineScope中没有迭代消息的变体。迭代必须在主线程中完成。
答案 0 :(得分:2)
您可以等到$users = DB::table('users')
->offset(10)
->limit(5)
->get();
完成所有任务,然后再使用awaitAll
在主线程中执行回调。
withContext