首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 4 ApiController与异步并发

MVC 4 ApiController与异步并发
EN

Stack Overflow用户
提问于 2012-10-08 06:34:20
回答 1查看 2K关注 0票数 3

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

代码语言:javascript
复制
// 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,每个窗口之间有大约一秒钟的延迟:

代码语言:javascript
复制
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等呢?)而不是逆向工程,我想问.

这种行为在什么地方有记载吗?

编辑:我试着抓住这根稻草,但没有结果。

编辑:如评论中所要求的,时间(大致)如下:

代码语言:javascript
复制
 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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-08 10:11:23

浏览器将自动限制它们与主机的连接数量。RFC 2616 (HTTP1.1)建议限制两个持久连接;您的浏览器似乎使用的限制为三个。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12776444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档