Выполнение моей программы занимает много времени, и 99% из них отправляет запрос и ожидает ответа (URL-адрес одинаков для всех запросов).Вот почему я хочу отправить несколько HTTP-запросов, и в настоящее время я использую HttpClient.
По сути, мой код выглядит так:
Parallel.Foreach(objects, async obj => {
//create content
var client = new HttpClient {Timeout = new TimeSpan(0, 0, 0, 1, 0)};
var response = await client.PostAsync(url, stringContent);
//do something with response
});
Однако программа по-прежнему занимает почти столько же времени,Я попытался добавить в Main:
ServicePointManager.DefaultConnectionLimit = 100;
Я также изменил строку:
Parallel.ForEach(objects, parallelOptions: new ParallelOptions{MaxDegreeOfParallelism = 2}, body: async obj =>
Visual Studio показывает, что действительно 2 потока созданы, но время остается тем же.
Я также хочу отметить, что мне пришлось сделать Timeout достаточно большим, потому что в противном случае было бы TaskCanceledException.