Junior — Middle
Kun je de belangrijkste methoden voor het werken met DispatchGroup in iOS opsommen en uitleggen?
sobes.tech AI
Antwoord van AI
DispatchGroup in iOS wordt gebruikt om meerdere asynchrone taken te groeperen en hun voltooiing te volgen. De belangrijkste methoden en manieren om met DispatchGroup te werken:
- enter() — informeert de groep dat een nieuwe taak is begonnen. Moet worden aangeroepen als de taak handmatig wordt gestart en niet via
group.async. - leave() — informeert de groep dat de taak is voltooid. Het aantal aanroepen van
leave()moet overeenkomen met het aantalenter(). - notify(queue: DispatchQueue, execute: () -> Void) — stelt een codeblok in dat wordt uitgevoerd op de opgegeven wachtrij nadat alle taken in de groep zijn voltooid.
- wait(timeout:) — wacht synchrone op de voltooiing van alle taken in de groep of totdat de timeout is verlopen.
Voorbeeld van gebruik:
let group = DispatchGroup()
let queue = DispatchQueue.global()
group.enter()
queue.async {
// Asynchrone taak 1
print("Taak 1 gestart")
sleep(2)
print("Taak 1 voltooid")
group.leave()
}
group.enter()
queue.async {
// Asynchrone taak 2
print("Taak 2 gestart")
sleep(1)
print("Taak 2 voltooid")
group.leave()
}
group.notify(queue: DispatchQueue.main) {
print("Alle taken voltooid")
}
In dit voorbeeld worden twee taken parallel uitgevoerd, en na hun voltooiing wordt de blok in notify aangeroepen. Deze aanpak maakt het gemakkelijk om meerdere asynchrone operaties te synchroniseren.