Junior — Middle
Majú sa všetky úlohy v MainQueue vykonávať presne na hlavnom vlákne?
sobes.tech AI
Odpoveď od AI
Nie všetky úlohy z MainQueue by mali byť vykonávané na hlavnom vlákne. V iOS je MainQueue (hlavná fronta) určená na aktualizáciu UI a prácu s prvkami rozhrania, ktoré vyžadujú vykonanie na hlavnom vlákne.
Ak je úloha spojená s ťažkými výpočtami alebo sieťovými požiadavkami, je lepšie ju vykonať na pozadí (cez globálne fronty alebo vlastné fronty), aby nedochádzalo k blokovaniu UI a nezhoršovala sa odozva aplikácie.
Príklad:
DispatchQueue.global().async {
// Ťažká úloha
let result = performHeavyCalculation()
DispatchQueue.main.async {
// Aktualizácia UI s výsledkom
self.label.text = "Výsledok: \(result)"
}
}