c# - 使 .NET Core 控制器动作非阻塞
问题描述
据我了解,异步方法允许处理 http 请求,以便在不阻塞进一步请求的情况下处理这些请求。我希望 IIS 能够同时处理对此方法的多个请求。当我测试时实际发生的是这些请求一次处理一个。我错过了什么?
public async Task<IActionResult> Index()
{
await Task.Run(() =>
{
Thread.Sleep(10000);
});
return View();
}
编辑:我尝试通过 Postman 而不是 Chrome 发送请求,并且它按预期进行。请求同时处理。在这一点上,我想知道为什么 Chrome 会在发送另一个请求之前等待处理前一个请求。下面是 Chrome 网络窗口的屏幕截图。
解决方案
这种行为是由于 Chrome 锁定了缓存并在再次请求同一资源之前等待查看一个请求的结果。 向同一资源发出多个请求时,Chrome 会停止?.
推荐阅读
- protocol-buffers - C++ protobuf 使用的内存比保存消息所需的内存多得多
- ios - 改进两个数组 Swift 的比较
- javascript - 来自 zone.js 的 Angular 6 未捕获异常
- sql - sql:从 jsonb 列中获取不同的值
- neo4j - loadAll 不加载具有不同标签的关系节点
- sql - SQL左连接多列
- haskell - '.' 和有什么区别?和 '<<<' 执行功能组合时?
- android - Android studio - 在 string.xml 中获取数组字符串项的翻译
- ios - Swift 4:从 Firebase 存储中获取图像并将它们显示在表格视图中
- microsoft-graph-api - Graph API 无法在手机中进行身份验证