Junior — Middle
Vai vari uzskaitīt un izskaidrot galvenās metodes, kā strādāt ar DispatchGroup iOS?
sobes.tech AI
Atbilde no AI
DispatchGroup iOS platformā tiek izmantots, lai grupētu vairākas asīnhronas uzdevumus un uzraudzītu to pabeigšanu. Galvenās metodes un darba veidi ar DispatchGroup:
- enter() — informē grupu, ka ir uzsākts jauns uzdevums. Jāizsauc, ja uzdevums tiek uzsākts manuāli un necaur
group.async. - leave() — informē grupu, ka uzdevums ir pabeigts.
leave()izsaukumu skaits jāatbilstenter()skaitam. - notify(queue: DispatchQueue, execute: () -> Void) — nosaka koda bloku, kas tiks izpildīts norādītajā rindā pēc tam, kad visi uzdevumi grupā būs pabeigti.
- wait(timeout:) — sinhroni gaida, līdz visi uzdevumi grupā tiks pabeigti vai beigsies laika limits.
Piemērs lietošanai:
let group = DispatchGroup()
let queue = DispatchQueue.global()
group.enter()
queue.async {
// Asinhronais uzdevums 1
print("Uzdevums 1 sākās")
sleep(2)
print("Uzdevums 1 pabeigts")
group.leave()
}
group.enter()
queue.async {
// Asinhronais uzdevums 2
print("Uzdevums 2 sākās")
sleep(1)
print("Uzdevums 2 pabeigts")
group.leave()
}
group.notify(queue: DispatchQueue.main) {
print("Visi uzdevumi ir pabeigti")
}
Šajā piemērā divi uzdevumi tiek izpildīti paralēli, un pēc to pabeigšanas izsaucas notify bloks. Šī pieeja ļauj ērti sinhronizēt vairākas asīnhronas operācijas.