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);
}