Асинхронность
Что такое асинхронность и чем она отличается от многопоточности?
Асинхронность:
-
Определение: Выполнение задач без блокировки основного потока, позволяя другим операциям продолжаться до завершения задачи.
-
Использование: Методы
asyncиawaitв C#. -
Цель: Улучшение отзывчивости приложений, особенно при выполнении ввода-вывода (I/O).
Многопоточность:
-
Определение: Одновременное выполнение нескольких потоков в одном процессе.
-
Использование: Создание и управление потоками (threads).
-
Цель: Параллельное выполнение задач для улучшения производительности, особенно для вычислительно интенсивных задач.
Итог:
-
Асинхронность: Не блокирует потоки, управляет задачами.
-
Многопоточность: Использует несколько потоков для параллельной работы.
Какие есть ключевые слова для использования асинхронности в коде?
В C# есть следующие ключевые слова, для использования асинхронности:
-
async- Объявляет метод асинхронным.public async Task MyAsyncMethod() { /* ... */ } -
await- Приостанавливает выполнение метода до завершения асинхронной задачи.await SomeAsyncMethod();
Эти ключевые слова позволяют писать асинхронный код, который выполняется без блокировки основного потока.
Что означают ключевые слова async / await?
async:
-
Определение: Указывает, что метод является асинхронным и может содержать
await. -
Пример:
public async Task MyAsyncMethod() { /* ... */ }
await:
-
Определение: Приостанавливает выполнение асинхронного метода до завершения ожидаемой задачи.
-
Пример:
await SomeAsyncMethod();
Итог:
-
async: Метка для асинхронного метода. -
await: Ожидание завершения асинхронной операции.