首页 > 解决方案 > 使 .NET Core 控制器动作非阻塞

问题描述

据我了解,异步方法允许处理 http 请求,以便在不阻塞进一步请求的情况下处理这些请求。我希望 IIS 能够同时处理对此方法的多个请求。当我测试时实际发生的是这些请求一次处理一个。我错过了什么?

    public async Task<IActionResult> Index()
    {

        await Task.Run(() =>
        {
            Thread.Sleep(10000);
        }); 

        return View();
    }

编辑:我尝试通过 Postman 而不是 Chrome 发送请求,并且它按预期进行。请求同时处理。在这一点上,我想知道为什么 Chrome 会在发送另一个请求之前等待处理前一个请求。下面是 Chrome 网络窗口的屏幕截图。

在此处输入图像描述

标签: c#asp.net-mvcasync-await.net-5

解决方案


这种行为是由于 Chrome 锁定了缓存并在再次请求同一资源之前等待查看一个请求的结果。 向同一资源发出多个请求时,Chrome 会停止?.


推荐阅读