在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