private static async Task Main()
{
Console.Clear();
Console.WriteLine("start");
await MyMethodAsync();
}
private static async Task MyMethodAsync()
{
const int count = 10;
Task<string> loopATask = Task.Run(() => LoopA(count));
Task<string> loopBTask = Task.Run(() => LoopB(count));
string resultA = await loopATask;
string resultB = await loopBTask;
Console.WriteLine(resultA + resultB);
}
public static string LoopA(int count)
{
Task.Delay(2000);
return "LoopA has finished ";
}
public static string LoopB(int count)
{
Task.Delay(1000);
return "LoopB has finished ";
}
Expected Output : 2 second delay before writing resultA + resultB
Actual Output: resulA + resultB is printed instantly