using System; using System.Threading; using System.Threading.Tasks; class Program { public static int Add(int a, int b) { Console.WriteLine("Child thread starts"); int result = a + b; Console.WriteLine("Child thread goes to sleep"); Thread.Sleep(5000); // the thread is paused for 5000 milliseconds Console.WriteLine("Child thread resumes and finishes"); return result; } public static void Main(string[] args) { int x = 30; int y = 12; Task task = new Task(() => Add(x, y)); Console.WriteLine("Main thread starts"); task.Start(); Console.WriteLine("Main thread waiting"); int sum = task.Result; Console.WriteLine("Main thread finishes, sum = {0}", sum); } }