using System.Threading.Tasks;
public static void Main()
private static async Task StartProcess()
var fetchingForecaseTask = FetchingForecast();
Console.WriteLine("While Method 1 call is in WIP");
var fetchingOrdersTask = FetchingOrders();
Console.WriteLine("While Method 2 call is in WIP");
await Task.WhenAll(fetchingForecaseTask, fetchingOrdersTask);
Console.WriteLine("------------------------------------------------");
Console.WriteLine("------------------------------------------------");
Console.WriteLine(" Method 1 count -> {0} and Method 2 Count -> {1} ", countMethod_1, countMethod_2);
Console.WriteLine("------------------------------------------------");
Console.WriteLine("------------------------------------------------");
static int countMethod_1;
static int countMethod_2;
public static async Task FetchingForecast()
for (int i = 0; i < 999; i++)
Console.WriteLine(" Method 1 -> "+ i +" (" + DateTime.Now.Minute + "-" + DateTime.Now.Second + "-" + DateTime.Now.Millisecond + ")");
public static async Task FetchingOrders()
for (int i = 0; i < 250; i++)
Console.WriteLine(" Method 2 -> "+ i +" (" + DateTime.Now.Minute + "-" + DateTime.Now.Second + "-" + DateTime.Now.Millisecond + ")");