Asynchronous Patterns

Asynchronous patterns deal with operations that don’t block the main program execution. They allow a program to initiate a long-running task and continue processing other tasks without waiting for the first to complete.

Wikipedia