Использование асинхронного вызова может освободить ваше приложение, чтобы делать другие вещи, ожидая ответа. Поскольку существует довольно большое количество времени (в компьютерных циклах), ожидающих ответа веб-сервера, это время можно использовать для улучшения таких вещей, как отображение обновления состояния или выполнение какой-либо другой работы.
Например, если у вас была программа, которая выполняла сложный расчет, и шаг этого расчета включал использование некоторых справочных данных из удаленной веб-службы. Вызывая веб-службу асинхронно в начале вычисления, продолжая части вычисления, которые могут выполняться локально, а затем используя результат вызова веб-службы, когда он доступен для завершения вычисления, вы можете уменьшить общее время расчет.
Поскольку ваш код приложения не является заблокирован, ожидая ответа веб-службы, вы можете использовать это время ожидания в интересах пользователя.
Еще одна причина заключается в масштабировании, особенно на веб-сайтах, которые совершают звонки на другие веб-службы. Используя асинхронные методы страниц (или задачи), IIS может более эффективно масштабировать ваше приложение, откладывая ваши страницы, ожидающие асинхронных веб-запросов, на то, что называется «поток IO», освобождая основные рабочие потоки ASP.NET, чтобы обслуживать больше веб-страница.
Вот где я смущен. Я понимаю потребность в асинхронных вызовах, но потом ждите, после того, как вызов вызовет всю цель. На самом деле, я считаю, что способ по умолчанию, в котором мы выполняем асинхронный вызов ASP.NET, также заставляет приложение ждать, пока он не получит ответ. Я попробую найти дополнительную информацию и разместить здесь. –
@ Noob2487, см. Мое редактирование. –
@ Robert/@ Brian: Итак, вы предлагаете делать несколько звонков за один раз. Как я знаю, сервер готов обрабатывать вызовы одновременно или может ли он задушить сеть или сервер? Здесь мы не используем очереди сообщений. –