https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/task-asynchronous-programming-model#BKMK_WhatHappensUnderstandinganAsyncMethodThe most important thing to understand in asynchronous programming is how the control flow moves from method to method. The following diagram leads you through the process.