簡體   English   中英

異步/等待最大並發http請求數

[英]Async/Await maximum number of concurrent http requests

當Async / Await發出http請求時(例如使用HttpClient ),默認情況下是否內置了任何限制?

這樣的問題意味着連接無限數量的將被打開。 我的應用程序在一個循環中執行一批h​​ttp請求,似乎保持在大約50個TCP連接上限。

我最初擔心我需要添加SemaphoreSlim進行限制,但.NET似乎是為我做這個。 任何人都可以對此有所了解嗎?

.Net框架中的連接存在限制。 例如,此ServicePointManager具有DefaultConnectionLimit ,允許您限制並發操作。

但是,我不建議將其用於限制。 如果您需要控制您的請求,您應該使用SemaphoreSlim ,特別是WaitAsync因為您處於async-await環境中,並且這些請求是IO綁定的(並且很長)。

使用SemaphoreSlim.WaitAsync意味着您不會阻塞並等待異步,這對於任何其他非async限制機制都不是這種情況。 此外,您不希望在能夠完成操作之前啟動該操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM