class Program { static void Main(string[] args) { Test(); Console.ReadKey(); } static async void Test() { Task returnedTaskTResult = GetTaskOfTResultAsync(); SynchronousTask(); int intResult = await returnedTaskTResult; //int intResult = await GetTaskOfTResultAsync(); Console.WriteLine("GetTaskOfTResultAsync result " + intResult); } static async Task GetTaskOfTResultAsync() { int hours = 0; Console.WriteLine("GetTaskOfTResultAsync start!"); await Task.Delay(10000); Console.WriteLine("GetTaskOfTResultAsync end!"); return hours; } static void SynchronousTask() { Console.WriteLine("SynchronousTask start!"); Thread.Sleep(2000); Console.WriteLine("SynchronousTask end!"); } }