WhenAll — wait for all. WhenAny — wait for first.
WhenAll:
WhenAny:
1// WhenAll2var tasks = urls.Select(url => client.GetAsync(url));3var responses = await Task.WhenAll(tasks);45// WhenAny6var task1 = GetFromSource1();7var task2 = GetFromSource2();8var first = await Task.WhenAny(task1, task2);
Key: WhenAll for parallel, WhenAny for race.