I'm just test some async and await with simple functions. Now the output of Console.WriteLine(foo()) is System.Threading.Tasks.Task1[System.Int32]. I'd like to know how to make it return 1?
static async Task<int> Delay1() { await Task.Delay(1000); return 1; }
static async Task<int> Delay2() { await Task.Delay(2000); return 2; }
static async Task<int> Delay3() { await Task.Delay(3000); return 3; }
static async Task<int> foo()
{ 
    Task<int> winningTask = await Task.WhenAny(Delay1(), Delay2(), Delay3());
    //int r = winningTask.Result;
    //return r;
    await winningTask;
    return winningTask.Result;
}
static void Main(string[] args)
{           
    Console.WriteLine("Done");
    Console.WriteLine(foo()); // 1
    Console.WriteLine(Delay1().Result);
}
 
    