Ответ
Главная очередь (DispatchQueue.main) — это последовательная очередь, привязанная к главному потоку приложения. На ней обязательно выполняются все операции, связанные с пользовательским интерфейсом (UI):
- Обновление UI: изменение свойств визуальных элементов (
text,color,frame). - Обработка пользовательских событий: нажатия, жесты, ввод с клавиатуры.
- Анимации через UIKit/SwiftUI.
- Завершающие обработчики (completion handlers), которые явно указаны для выполнения на
main.
Пример обновления UI:
DispatchQueue.main.async {
self.titleLabel.text = "Данные загружены" // Безопасное обновление
}
Критическое правило: На главной очереди нельзя выполнять долгие или блокирующие операции (сетевые запросы, тяжелые вычисления, чтение больших файлов). Это приведет к "зависанию" интерфейса. Такие задачи должны выполняться в фоновых очередях (DispatchQueue.global()).
Проверка текущей очереди:
if Thread.isMainThread {
print("Выполняемся на главной очереди")
}