private Task <string> TimeConsumingMethod2() { var task = Task.Run(() => { Console.WriteLine("Helo I am TimeConsumingMethod. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId); Thread.Sleep(10000); Console.WriteLine("Helo I am TimeConsumingMethod after Sleep(10000). My Thread ID is :" + Thread.CurrentThread.ManagedThreadId); LazySingleton instance = LazySingleton.Instance; instance.Calculator(); //NormalClass nc = new NormalClass(); //nc.Calculator(); return("Hello I am TimeConsumingMethod" + Thread.CurrentThread.ManagedThreadId); }); return(task); }