簡體   English   中英

使用ASP.NET MVC異步控制器方法處理多個用戶請求

[英]Process multiple user requests with asp.net mvc async controller method

我的同步控制器方法運行時間很長,並且在運行時無法獲得其他用戶請求的答案。

我使用async / await和ConfigureAwait(False)使所有內容異步,但是我仍然需要等待。

簡單的例子:

    public async Task<ActionResult> Index()
    {
        var result = await Task.Run(() => Wait()).ConfigureAwait(false); 

        return View(result);
    }

    private async Task<bool> Wait()
    {
        await Task.Delay(60000);

        return true;
    }

現在,如果我向該方法“ mycontroller / Index”發送請求,我希望可以獲取另一個方法“ anotherController / Index”的視圖,但是我應該等待異步方法完成。

這是正常行為嗎? 我應該使用async釋放ui線程並使其可用,直到長時間運行的方法完成嗎?

ASP.NET序列化同一Session請求,以避免從多個線程同時寫入同一Session問題。 標有會話ReadOnly屬性的控制器的操作將並行執行:

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
public class MyController : Controller
{
  ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM