@pro100chel

Ограничения async/await C#?

Узнал про то, что в C# существует async/await.
Хотелось бы написать ассинхронный сервер, который может одновременно обслуживать несколько тысяч клиентов.
Вот предположим из метода Main мы вызываем ассинхронный метод Service. Можно ли сразу после этого еще несколько сотен раз или тысяч раз вызвать этот метод?
Я так понял, что ассинхронность позволяет практически бесконечно вызывать один и тот же метод, при этом управление будет передаваться в метод Main.
Поправьте меня если не прав.
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Можно. Для того оно и было придумано.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
Можно ли сразу после этого еще несколько сотен раз или тысяч раз вызвать этот метод? Ассинхронность позволяет практически бесконечно вызывать один и тот же метод?

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

Если метод, который изменяется ключевым словом async, не содержит выражения или оператора await, метод выполняется синхронно.

Кроме того, гораздо эффективнее использовать столько потоков, сколько доступно ядер. Поэтому лучше всего организовать очередь, а обрабатывать её параллельно с помощью threadpool или parallel.foreach.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ПРОФЭЛИТ Казань
от 100 000 до 170 000 ₽
GD Company Санкт-Петербург
от 120 000 до 150 000 ₽
Mystery Tag Новосибирск
от 80 000 до 110 000 ₽
04 апр. 2020, в 23:07
30000 руб./за проект
04 апр. 2020, в 23:05
100000 руб./за проект
04 апр. 2020, в 22:57
2000 руб./за проект