gpt4 book ai didi

c# - Async/Await 最大并发 http 请求数

转载 作者:太空狗 更新时间:2023-10-30 00:51:04 24 4
gpt4 key购买 nike

当 Async/Await 发出 http 请求时(例如使用 HttpClient),是否有默认内置的限制?

类似 this 的问题意味着将打开无限数量的连接。我的应用程序在循环中执行一批 http 请求,似乎限制在大约 50 个 TCP 连接。

我最初担心我需要添加 SemaphoreSlim 来进行节流,但 .NET 似乎帮我做了这件事。任何人都可以阐明这一点吗?

最佳答案

.Net 框架中的连接存在限制。例如,此 ServicePointManager 具有 DefaultConnectionLimit,它允许您限制并发操作。

但是,我不建议将其用于节流。如果您需要控制您的请求,您应该使用 SemaphoreSlim,特别是 WaitAsync,因为您处于 async-await 环境中,这些请求是IO 绑定(bind)(和长)。

使用 SemaphoreSlim.WaitAsync 意味着您不会阻塞,而是异步等待,这对于任何其他非 async 节流机制都是不可能的。此外,您不希望在能够完成之前开始操作。

关于c# - Async/Await 最大并发 http 请求数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979784/

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