在ASP.NET MVC和Web API,异步操作是标有改性剂async
,例如控制器的操作方法:什么等待异步操作方法的返回?
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
这标志着动作方法,异步,的“一个因此我的化名异步操作“,并且它表示该方法可能包含'等待被调用到其他方法,并且它不会从上到下执行完整的代码行。这也表明,它的呼叫者使用类似:
ActionResult result = await Login(LoginViewModel model, string returnUrl)
意味着该呼叫等待通过Login
分拆之前完成正确返回ActionRsult
任何一点(或块状)异步任务。我们说,呼叫者正在等待拨打Login
。我的问题是什么对象在第二个代码块中调用这个函数,然后'等待异步操作'>我从来没有真正关心过什么叫做动作,并等待着,之前的一种方法;我一直认为它与请求 - 响应流水线非常接近,并且在异步操作上忽略了结果过滤器,它几乎直接进入浏览器。
这个等待动作方法的对象是否可以调用更多的对象并阻止管道中的积压,或者仅仅是async
以便我们可以等待其中的其他任务?
我不知道你在问什么。也许一个代码示例会有所帮助。 – mason
框架管道等待操作。最终目的是发布否则等待其他事情(I/O,数据库等)的资源,以便Web服务器可以处理更多的请求,而其他当前请求很忙。 – David
@mason不要标签表明你应该知道我在说什么。我对药物一无所知,但当我不了解论坛上的中间问题时,我不会抱怨。 – ProfK