TGViewer
Библиотека шарписта | C#, F#, .NET, ASP.NET Библиотека шарписта | C#, F#, .NET, ASP.NET @csharpproglib · 21.6K subscribers
Post #5019 7.57K
🤔 Конечный автомат в C# с async/await

Вы могли слышать, что ключевые слова async и await в C# приводят к созданию конечного автомата. Но что это значит?

📌 Создание конечного автомата:

Компилятор разбивает метод на части вдоль границ await и создает конечный автомат, который управляет состоянием выполнения кода. Каждый раз, когда метод встречает await, выполнение приостанавливается, и создается состояние, которое будет продолжено после завершения асинхронной операции.

📌 Управление состояниями с помощью TaskScheduler:

TaskScheduler управляет продолжением выполнения конечного автомата, запускает его, когда завершится ожидаемая задача. Конечный автомат синхронно выполняет код между await, а затем использует колбэки для продолжения выполнения.

📌 Хранение состояния:

Конечный автомат хранится в объекте Task или Task<T>, который также сохраняет текущие состояния и результаты выполнения задач, а также возможные исключения.

👉 Подробнее в гайде от Steven Giesel
  • 👍 24
  • 🔥 8
  • ❤ 2
More from @csharpproglib
  1. Oct 16, 2026⚙️ Task.WhenAll не ограничивает число запросов Если передать в Task.WhenAll тысячу задач о…
  2. Oct 15, 2026🧑‍💻 Какие навыки помогают вам в разработке в 2026 году? Что вы чаще используете в работе…
  3. Oct 15, 2026🧩 Mapperly: маппинг DTO, который можно открыть и прочитать Вручную перекладывать двадцать…
  4. Oct 14, 2026Post #7290
  5. Oct 14, 2026Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-ск…
  6. Oct 14, 2026🧠 Кеш пустой, а в базу одновременно пришли сто запросов Популярная запись исчезла из кеша…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →