1

我有一种情况,我需要等待一组任务完成,然后再执行一些 UI 渲染代码。

其中一些任务是网络请求,它们将始终完成并离开调度组。然而,有些不是网络请求,可能会或可能不会完成。在一项任务未完成并且离开的调用永远不会平衡进入的调用的情况下,DispatchGroup 永远不会被取消分配。

有没有办法使用 DispatchGroup 解决这个问题?或者我应该自己实现一个简单的计数器。

4

1 回答 1

0

您仍然应该使用DispatchGroup它,因为它不那么复杂和强大。a 的重点是在执行 UI 更新之前要首先完成的每个方法DispatchGroup中添加 a ,它是任何方法,如网络请求、对象更新等。每次完成时,无论它是否成功dispatchGroup.enter(),你需要放一个dispatchGroup.leave()来保持平衡,我相信dispatchGroup.notify会被调用。

于 2020-02-07T02:24:55.323 回答