0Pricing
Swift Academy · Урок

Task и отмена Task

Создавайте структурированные задачи, проверяйте отмену и реализуйте совместную отмену.

«Task и отмена Task» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Добро пожаловать

`Task` — фундаментальная единица конкурентности в Swift. Она выполняет асинхронную работу и поддерживает структурированную отмену для корректного управления ресурсами.

Создание задачи

```swift Task { let user = try await fetchUser(id: 1) print(user.name) } ``` `Task` создаёт новый контекст конкурентного выполнения.

Приоритет задачи

```swift Task(priority: .userInitiated) { await loadContent() } Task(priority: .background) { await prefetch() } Task(priority: .utility) { await syncData() } ```

Task.cancel()

```swift var task: Task? func startLoading() { task = Task { await heavyWork() } } func stopLoading() { task?.cancel() } ```

Проверка отмены

```swift func process() async throws { for item in items { try Task.checkCancellation() // throws if cancelled process(item) } } ```

Task.isCancelled

```swift func stream() async { while !Task.isCancelled { let data = await fetch() emit(data) } } ```

Отделённые задачи

```swift Task.detached(priority: .background) { // NOT inheriting actor context or priority of the caller await heavyBackgroundWork() } ```

withTaskCancellationHandler

```swift await withTaskCancellationHandler { await doWork() } onCancel: { cleanup() } ```

Возвращаемые значения задач

```swift let task = Task { 6 * 7 } let result = await task.value // 42 ```

Приостановка

```swift try await Task.sleep(for: .seconds(2)) // Swift 5.7+ try await Task.sleep(nanoseconds: 1_000_000_000) // 1 second ```

Быстрая проверка

Какой метод выбрасывает `CancellationError`, если задача была отменена?

Повторение

Основные выводы: • `Task { }` — создаёт единицу асинхронной работы • `task.cancel()` + `Task.checkCancellation()` — кооперативная отмена • `Task.isCancelled` — проверка в стиле опроса • `Task.detached` — не наследует актора или приоритет • `Task.sleep(for:)` — неблокирующая задержка Далее: async let.

Часто задаваемые вопросы

Урок «Task и отмена Task» бесплатный?

Да — полный текст урока «Task и отмена Task» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Task и отмена Task»?

Создавайте структурированные задачи, проверяйте отмену и реализуйте совместную отмену. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Task и отмена Task»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Синтаксис async/await и вызов асинхронных функций
  2. Task и отмена Task
  3. async let и параллельные дочерние задачи
  4. Акторы: защита общего изменяемого состояния
← Назад к Swift Academy