@pro100chel

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы