Junior — Middle
Kas nutiks, jei pagrindinio vykdymo siūle bus vykdoma sinchroninė operacija?
sobes.tech AI
Atsakymas iš AI
Jei sinchroninė operacija vykdoma pagrindiniame (UI) sraute iOS, naudotojo sąsaja nustos reaguoti į naudotojo veiksmus iki šios operacijos pabaigos. Tai vyksta todėl, kad pagrindinis srautas atsakingas už įvykių apdorojimą ir UI atnaujinimą, o jo užblokavimas sukelia "užšalimą".
Pavyzdžiui, jei duomenų įkėlimas iš tinklo arba sunkus apdorojimas vykdomi sinchroniškai pagrindiniame sraute, programa gali atrodyti, kad ji užšalo, kas pablogina naudotojo patirtį.
Norint to išvengti, ilgos trukmės operacijos turi būti vykdomos fone naudojant GCD (Grand Central Dispatch) arba operacijų eilutes (OperationQueue), o UI atnaujinimai turi būti atliekami vėl pagrindiniame sraute.