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)"
}
}