makarychev13
@makarychev13
.NET-developer

Зачем нужно асинхронное программирование в C#?

Всем привет. Недавно на собеседовании спросили, зачем вообще нужно асинхронное программирование в С#. Я более-менее в нём разбираюсь, но затупил и не ответил на вопрос. Более того, даже сейчас я не понимаю, как правильно и красиво ответить на него. Может кто помочь?
  • Вопрос задан
  • 1930 просмотров
Решения вопроса 2
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
Асинхронность нужна чтобы главный "процесс" программы, не блокировал выполнение инструкций. А передавал управление другому независимому потоку/процессу, до тех пор пока прошлый не ответит успехом об успешности завершения выполнения и готовности дальше идти по коду/инструкциям.

Цели:
- ускорение работы программы
- выполнение без блокирующих эффектов (в том числе и в интерфейсе пользователя)
- многозадачность + многопоточность
Ответ написан
@ofigenn
Асинхронность, по простому, нужна, чтобы вызывающий поток не находился в состоянии ожидания окончания операции. Польза от асинхронности заметна в основном при операциях ввода/вывода, когда аппаратные средства явно могут уведомить ОС об окончании ввода/вывода. При выполнении вычислительных операций на CPU асинхронность скорее навредит производительности. Читайте Рихтера, у него всё разжевано на примерах.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vayngarten
В этих публикациях, на мой взгляд, хорошо написано об асинхронности в общем
1. https://m.habr.com/ru/company/jugru/blog/446562/
2. https://ru.stackoverflow.com/questions/445768/%D0%...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы