Junior — Middle
iOS-də DispatchGroup ilə işləmək üçün əsas metodları sadalaya və izah edə bilərsənmi?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da DispatchGroup bir neçə asinxron vəzifəni qruplaşdırmaq və onların tamamlanmasını izləmək üçün istifadə olunur. DispatchGroup ilə işləmək üçün əsas metodlar və üsullar:
- enter() — qrupa yeni vəzifənin başladığını bildirir. Əgər vəzifə əl ilə başlayırsa və ya
group.asyncvasitəsilə başlamırsa, çağırılmalıdır. - leave() — qrupa vəzifənin tamamlandığını bildirir.
leave()çağırışlarının sayıenter()sayına uyğun olmalıdır. - notify(queue: DispatchQueue, execute: () -> Void) — qeyd olunan növbədə bütün vəzifələr tamamlandıqdan sonra icra olunacaq kod blokunu təyin edir.
- wait(timeout:) — bütün vəzifələrin tamamlanmasını və ya vaxtın bitməsini sinxron şəkildə gözləyir.
İstifadə nümunəsi:
let group = DispatchGroup()
let queue = DispatchQueue.global()
group.enter()
queue.async {
// Asinxron vəzifə 1
print("Vəzifə 1 başladı")
sleep(2)
print("Vəzifə 1 tamamlandı")
group.leave()
}
group.enter()
queue.async {
// Asinxron vəzifə 2
print("Vəzifə 2 başladı")
sleep(1)
print("Vəzifə 2 tamamlandı")
group.leave()
}
group.notify(queue: DispatchQueue.main) {
print("Bütün vəzifələr tamamlandı")
}
Bu nümunədə iki vəzifə paralel şəkildə icra olunur və onların tamamlanmasından sonra notify içindəki blok çağırılır. Bu yanaşma bir neçə asinxron əməliyyatı asanlıqla sinxronlaşdırmağa imkan verir.