【发布时间】:2020-09-30 01:43:16
【问题描述】:
我有一个 HttpClient,我正在使用以下代码根据远程服务器上的文件提取流。当线程到达第三个等待时,它会在那里暂停很长时间。如果文件的大小妨碍它们分别为 33347 kb、123665 kb 和 178688 kb,但我怀疑是这种情况,因为最后两个的大小相似。
// a property in a class
private HttpClient HttpClient { get; set; } = new HttpClient() { Timeout = TimeSpan.FromMilliseconds(-1) };
// in a function in that class
using Stream stationsStream = await HttpClient.GetStreamAsync("https://eddb.io/archive/v6/stations.jsonl");
using Stream systemsStream = await HttpClient.GetStreamAsync("https://eddb.io/archive/v6/systems_populated.jsonl");
// always gets stuck on the third await no matter the order.
using Stream listingStream = await HttpClient.GetStreamAsync("https://eddb.io/archive/v6/listings.csv");
我没有过多使用 HttpClient 类,但提出的一些理论是 API 只允许两个连接,或者 HttpClient 只能接受两个。
【问题讨论】:
-
您是否考虑在任何时候从这些流中实际读取任何内容?
-
@CaiusJard 是的,我有 3 个异步任务需要从流中读取数据。
标签: c# dotnet-httpclient