Зачем использовать асинхронные методы с хранилищем таблиц Azure? - PullRequest
0 голосов
/ 13 марта 2019

Я использую Microsoft.WindowsAzure.Storage.Table и не могу понять, в чем разница между асинхронными методами и обычными методами, например CloudTable.Execute и CloudTable.ExecuteAsync. Когда и почему я должен использовать каждый из них? Связано ли это даже с дизайном хранилища и модулем, который я использую, или я неправильно понимаю концепцию асинхронных методов (я новичок в c # и Azure)?

Редактировать: Если я всегда должен использовать асинхронные методы, почему обычные методы реализованы, доступны и, более того, используются в большинстве руководств по хранению таблиц Azure?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Обычно при использовании CloudTable.ExecuteAsync компилятор генерирует конечный автомат в фоновом режиме, поэтому вы можете избежать узких мест в производительности и повысить общую отзывчивость вашего приложения.

0 голосов
/ 13 марта 2019

Это не просто хранилище таблиц, а любой сервис, который реализует асинхронную операцию. Мы используем асинхронную загрузку основного потока и переносим задачу в фоновый режим. Основной поток готов принимать больше запросов, пока выполняется фоновая задача. После завершения он вернет управление в основной поток. Если вы не используете асинхронный доступ, у вас возникает проблема с информацией, которая называется истощением ресурсов, когда пул запросов начинает расти, и в итоге ваше приложение зависает.

Посмотрите на следующую ссылку, и это объясняет в деталях. Синхронный ввод / вывод антипаттерна

...