Looking for c# Answers? Try Ask4KnowledgeBase
Looking for c# Keywords? Try Ask4Keywords

C# LanguageАсинхронный-Await


Вступление

В C # метод, объявленный async , не будет блокироваться в синхронном процессе, если вы используете операции на основе ввода-вывода (например, веб-доступ, работа с файлами, ...). Результат таких асинхронных меток может ожидаться с помощью ключевого слова await .

замечания

Метод async может возвращать void , Task или Task<T> .

Тип возвращаемого Task будет ждать завершения метода, и результат будет void . Task<T> вернет значение из типа T после завершения метода.

методы async должны возвращать Task или Task<T> , в отличие от void , практически во всех случаях. async void методы не могут быть await , что приводит к множеству проблем. Единственный сценарий, в котором async должен возвращать void относится к обработчику событий.

async / await работает, преобразуя ваш async метод в async автомат. Он делает это, создавая структуру за кулисами, которая хранит текущее состояние и любой контекст (например, локальные переменные) и предоставляет метод MoveNext() для продвижения состояний (и запуска любого связанного кода) всякий раз, когда ожидается ожидаемое завершение.

Асинхронный-Await Связанные примеры