[英]Async/Await maximum number of concurrent http requests
當Async / Await發出http請求時(例如使用HttpClient
),默認情況下是否內置了任何限制?
這樣的問題這意味着連接無限數量的將被打開。 我的應用程序在一個循環中執行一批http請求,似乎保持在大約50個TCP連接上限。
我最初擔心我需要添加SemaphoreSlim
進行限制,但.NET似乎是為我做這個。 任何人都可以對此有所了解嗎?
.Net框架中的連接存在限制。 例如,此ServicePointManager
具有DefaultConnectionLimit
,允許您限制並發操作。
但是,我不建議將其用於限制。 如果您需要控制您的請求,您應該使用SemaphoreSlim
,特別是WaitAsync
因為您處於async-await
環境中,並且這些請求是IO綁定的(並且很長)。
使用SemaphoreSlim.WaitAsync
意味着您不會阻塞並等待異步,這對於任何其他非async
限制機制都不是這種情況。 此外,您不希望在能夠完成操作之前啟動該操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.