Sobes.tech
Junior — Middle

Ամեն գործառույթ, որը դրված է MainQueue-ում, պետք է կատարվի հենց հիմնական հոսքում?

sobes.tech AI

Պատասխան AI-ից

Ոչ, MainQueue- ից բոլոր առաջադրանքները պետք չէ իրականացնել հիմնական հոսքում: iOS-ում MainQueue (հիմնական հերթը) նախատեսված է UI- ի թարմացման և այն տարրերի հետ աշխատանքի համար, որոնք պահանջում են կատարվել հիմնական հոսքում:

Եթե առաջադրանքը կապված է ծանր հաշվարկների կամ ցանցային հարցումների հետ, ավելի լավ է այն իրականացնել ֆոնային հոսքում (գլոբալ հերթերի կամ սեփական հերթերի միջոցով), որպեսզի չխոչընդոտվի UI-ն և չվատթարանա հավելվածի արձագանքման կարողությունը:

Օրինակ՝

DispatchQueue.global().async {
    // Ծանր առաջադրանք
    let result = performHeavyCalculation()
    DispatchQueue.main.async {
        // UI- ի թարմացում արդյունքով
        self.label.text = "Արդյունք: \(result)"
    }
}