В ASP.NET MVC и Web API, асинхронное действие является методом действия контроллера, помеченный модификатором async
, например:Что ожидает возврат метода асинхронного действия?
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
Это маркирует метод действий как асинхронные, следовательно, мой псевдоним выражения « async action ', и это указывает на то, что метод может содержать «ожидаемый вызов» другим методам async
и что он не будет работать с полной остановкой сверху до нижней строки кода. Он также предполагает, что это вызывающий абонент использует что-то вроде:
ActionResult result = await Login(LoginViewModel model, string returnUrl)
Значение, что этот вызов будет ждать каких-либо мало (или массивные) асинхронных задач, выделившихся на Login
закончить до возвращения правильно ActionRsult
. Мы говорим, что вызывающий абонент «ждет» по его вызову Login
. Мой вопрос заключается в том, какой объект вызывает этот вызов во втором кодовом блоке и «ожидает асинхронного действия»>
Я никогда не интересовался тем, что называется действием, и ожидал, метод раньше; Я всегда считал, что он довольно близок к конвейеру запроса-ответа, и при асинхронном действии, игнорируя фильтры результатов, он в значительной степени переходит прямо в браузер.
Этот объект, который ожидает действия, делает так, что он может вызывать больше из них и предотвращать отставание в конвейере, или все только async
, чтобы мы могли ждать других задач внутри них?
Я понятия не имею, что вы здесь задаете. Возможно, пример кода поможет. – mason
Рамочный трубопровод ожидает действия. В конечном итоге цель состоит в том, чтобы освободить ресурсы, которые в противном случае ожидают другие вещи (I/O, DB и т. Д.), Чтобы веб-сервер мог обрабатывать больше запросов, в то время как другие текущие запросы заняты. – David
@mason Не указывайте теги, что вы должны знать немного о том, о чем я говорю. Я ничего не знаю о медицине, но я не жалуюсь, когда не понимаю медиальных вопросов на форуме. – ProfK