Building a responsive application
The first time .NET Framework was announced, the flow of the program was executed sequentially. The drawback of this execution flow is that our application has to wait for the operation to finish before executing the next operation. It will freeze our application, and that will be an unpleasant user experience.
To minimize this problem, .NET Framework introduces thread, the smallest unit of execution, which can be scheduled independently by the OS. And the asynchronous programming means that you run a piece of code on a separate thread, freeing up the original thread and doing other things while the task is completed.
Running a program synchronously
Let's start our discussion by creating a program that will run all operations synchronously. The following is the code that demonstrates the synchronous operation that we can find in the SynchronousOperation.csproj
project:
public partial class Program { public static void SynchronousProcess() ...