using System.Diagnostics;
using System.Threading.Tasks;
using System.Collections.Generic;
public static void Main()
Stopwatch watch = new Stopwatch();
var list = NotWhenAllOneAsync().Result;
Console.WriteLine("NotWhenAllOneAsync, total time " + watch.ElapsedMilliseconds);
var array = WithWhenAllAsync().Result;
Console.WriteLine("WithWhenAllAsync, total time " + watch.ElapsedMilliseconds);
static async Task<List<int>> NotWhenAllOneAsync()
await one, await two, await thr
static Task<int[]> WithWhenAllAsync()
return Task.WhenAll(one, two, thr);
static async Task<int> DelayedInt(int value)