gpt4 book ai didi

asp.net - MVC 4 ApiController 和异步并发

转载 作者:行者123 更新时间:2023-12-02 20:34:57 24 4
gpt4 key购买 nike

我正在 ApiController 中使用异步方法,其行为让我感到惊讶。我调用以下方法:

// GET api/values/{id}
public async Task<object> Get(int id)
{
var received = DateTime.Now;
await Task.Delay(10000);
var finished = DateTime.Now;
return new { id, received, finished };
}

来自四个浏览器窗口,按顺序显示以下 URL,每个窗口之间有大约一秒的延迟:

http://localhost:55571/api/values/1
http://localhost:55571/api/values/2
http://localhost:55571/api/values/3
http://localhost:55571/api/values/2

正如预期的那样,第一个 URL 在我启动后 10 秒返回,紧接着是第二个和第三个 URL。但是,第四个 URL 与第二个 URL 相同,在第二个 URL 返回后 10 秒返回。

这表明浏览器和我的代码之间的某些东西正在将请求序列化到相同的 URL、相同的参数集或其他内容(以及 POST、PUT 等呢?)。我不想对此进行逆向工程,而是想问......

此行为是否记录在某处?

编辑:我尝试捕获 this straw ,无济于事。

编辑:根据评论中的要求,时间安排(大致)如下:

 0 s: GET …/values/1
1 s: GET …/values/2
2 s: GET …/values/3
3 s: GET …/values/2 (2nd instance)
10 s: GOT …/values/1
11 s: GOT …/values/2
12 s: GOT …/values/3
21 s: GOT …/values/2 (2nd instance)

最佳答案

浏览器将自动限制与主机的连接数量。 RFC 2616 (HTTP 1.1) 建议限制两个持久连接;您的浏览器似乎使用了三个限制。

关于asp.net - MVC 4 ApiController 和异步并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com