当Async/Await发出http请求时(HttpClient例如使用),默认情况下是否内置了任何限制?
这样的问题这意味着连接无限数量的将被打开.我的应用程序在一个循环中执行一批http请求,似乎保持在大约50个TCP连接上限.
我最初担心我需要添加SemaphoreSlim限制,但.NET似乎为我做这个.任何人都可以对此有所了解吗?
.Net框架中的连接存在限制.例如ServicePointManager,DefaultConnectionLimit这允许您限制并发操作.
但是,我不建议将其用于限制.如果您需要控制您的请求,您应该使用SemaphoreSlim,特别是WaitAsync当您在async-await环境中时,这些请求是IO绑定的(并且很长).
使用SemaphoreSlim.WaitAsync意味着您不会阻塞并且您异步等待,这对于任何其他非async限制机制都不是这种情况.此外,您不希望在能够完成操作之前启动该操作.