Sobes.tech
Junior — Middle

Ar visos užduotys MainQueue'e turi būti vykdomos būtent pagrindiniame sraute?

sobes.tech AI

Atsakymas iš AI

Ne, visos užduotys iš MainQueue neturėtų būti vykdomos pagrindiniame sraute. iOS, MainQueue (pagrindinė eilė) skirta UI atnaujinimui ir darbui su elementais, kurie turi būti vykdomi pagrindiniame sraute.

Jei užduotis susijusi su sunkiomis skaičiavimais ar tinklo užklausomis, geriau ją vykdyti foniniame sraute (per globalias eilutes ar savo eilutes), kad neužblokuotumėte UI ir nepablogintumėte programėlės reagavimo.

Pavyzdys:

DispatchQueue.global().async {
    // Sunki užduotis
    let result = performHeavyCalculation()
    DispatchQueue.main.async {
        // UI atnaujinimas su rezultatu
        self.label.text = "Rezultatas: \(result)"
    }
}