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