There are 3 Asynchronous Programming Patterns in C#.
1- Asynchronous Programming Model (APM)
2- Event-based Asynchronous Pattern (EAP)
3- Task-based Asynchronous Pattern (TAP)
1- Asynchronous Programming Model (APM)
Asynchronous Programming Model using Delegates
you can reach that article from Calling synchronous methods asynchronously