[英]Asp .net mvc: async controller method blocks incoming requests
[英]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.