Task C# with Example
See below for a simple example of how to use a Task to do some time intensive stuff in a background process. All you need to do is wrap your time intensive method in a Task.Run() call. public void ProcessDataAsync() { // Start the time intensive method Task t = Task.Run(() => TimeintensiveMethod(@"PATH_TO_SOME_FILE")); // Control returns here before TimeintensiveMethod returns Console.WriteLine("You can read this while TimeintensiveMethod is still running."); Console.WriteLine("Count: " + t.Result); } private int TimeintensiveMethod(object file) { Console.WriteLine("Start TimeintensiveMethod."); // Do some time intensive calculations... using (StreamReader reader = new StreamReader(file.ToString())) { string s = reader.ReadToEnd(); for (int i = 0; i < 10000; i++) s.GetHashCode(); } Console.WriteLine("End TimeintensiveMethod."); // return something as a "result" return new Random().Next(100); }