Являются ли async/wait полезными для веб-приложений?

Я прочитал о ключевых словах Async и Await в C# 5.0, что позволяет одновременно выполнять параллельные задачи. (это то, что я понял).

Является ли эта практика полезной для веб-приложений?

Здесь у нас есть методы AJAX, которые позволяют выполнять задачи без блокировки пользовательского интерфейса (браузера).

Должны ли они использоваться только для асинхронных веб-сервисов?

Можете ли вы дать мне пример того, почему/как использовать ключевые слова async/await в веб-приложениях? (чтобы воспользоваться преимуществами этих функций)

7
nl ja de
-1 не конструктивна, но я помогу вам. Посмотрите это видео
добавлено автор gdoron, источник
Чтобы ответить на заголовок: ДА
добавлено автор SWeko, источник

2 ответы

Возможно, лучшим примером, о котором я могу думать, является вызов серии методов веб-сервисов из вашего метода асинхронного действия. Например:

Допустим, у вас есть два метода, определенные в вашем веб-сервисе: Method1 и Method2. Если каждый метод занимает 1 секунду, вызов обоих из них синхронно занимает 2 секунды, однако вызов их в режиме async займет меньше времени.

 using (DataClient proxy = new DataClient())
            {
                Task data1= proxy.Method1();
                Task data2 = proxy.Method2();

                await Task.WhenAll(new Task[] { data1, data2 });

               //Completed
           }

Из MSDN:

Класс AsyncController позволяет вам писать асинхронные методы действий. Вы можете использовать асинхронные методы действий для долгосрочных запросов, не связанных с ЦП. Это позволяет избежать блокирования веб-сервера от выполнения работы во время обработки запроса. Типичное использование класса AsyncController - это длительные вызовы веб-служб.

Link: http://msdn.microsoft.com/en-us/library/ee728598(v=VS.98).aspx

4
добавлено

async and await it's not an innovation, i't simple syntax sugar arround the same async invokation handling pattern, with the difference that it makes writing code in linear, much more natural way for a coder.

Итак, реальный вопрос: где я должен использовать асинхронный шаблон?

Ну, всякий раз, когда вам понадобится invokation async , или массивное выполнение нескольких вызовов, или некоторые тяжелые операции обработки ... или что-то еще, что можно найти в юниверсе, чтобы соответствовать требованиям async ,

3
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)