using System.Collections.Generic;
using System.Threading.Tasks;
using System.Diagnostics;
public static async Task Main()
Stopwatch stopwatch = new Stopwatch();
var pageURLs = new List<string> {
"https://www.scrapingcourse.com/ecommerce/page/1/",
"https://www.scrapingcourse.com/ecommerce/page/2/",
"https://www.scrapingcourse.com/ecommerce/page/3/",
"https://www.scrapingcourse.com/ecommerce/page/4/",
"https://www.scrapingcourse.com/ecommerce/page/5/"
HttpClient client = new HttpClient();
List<Task> tasks = new List<Task>();
foreach (var pageURL in pageURLs)
tasks.Add(Task.Run(() => ProcessRequest(pageURL, client)));
await Task.WhenAll(tasks);
double elapsedTimeS = stopwatch.ElapsedMilliseconds / 1000.0;
Console.WriteLine($"Elapsed time: {elapsedTimeS}s");
private static void ProcessRequest(string pageURL, HttpClient client)
var response = client.GetAsync(pageURL).Result;
Console.WriteLine($"Request to '{pageURL}' completed with status code '{response.StatusCode}'!");