Преимущество использования DispatchGroup по сравнению с базовым классом счетчиков c - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть ситуация, когда мне нужно дождаться завершения группы задач перед выполнением некоторого кода рендеринга пользовательского интерфейса.

Некоторые из этих задач - это сетевые запросы, которые всегда завершаются и покидают группу отправки. Некоторые, однако, не являются сетевыми запросами и могут или не могут быть выполнены. В случае, если одна задача не выполнена, и вызовы на отпуск никогда не уравновешивают входящие вызовы, DispatchGroup никогда не перераспределяется.

Есть ли способ обойти это с помощью DispatchGroup? Или я должен сам реализовать простой счетчик.

1 Ответ

0 голосов
/ 07 февраля 2020

Вы все равно должны использовать DispatchGroup, потому что он менее сложный и мощный. Смысл DispatchGroup заключается в добавлении dispatchGroup.enter() в каждый выполняемый вами метод, который вы хотите завершить sh, прежде чем выполнять обновление пользовательского интерфейса, это любой метод, такой как сетевой запрос, обновление ваших объектов и т. Д. c. И каждый раз, когда он заканчивается, независимо от того, удастся это или нет, вы должны поставить dispatchGroup.leave() для поддержания баланса, и я уверен, что будет вызван dispatchGroup.notify.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...