Apart from async/await
, the other framework (well more of a extension) is the Rx Extensions
(Reactive Extensions)
Few Helpful links
Rx extension has little learning curve, but it can really ease up few works
As described on the website
The Reactive Extensions (Rx) is a library for composing asynchronous
and event-based programs using observable sequences and LINQ-style
query operators. Using Rx, developers represent asynchronous data
streams with Observables, query asynchronous data streams using LINQ
operators, and parameterize the concurrency in the asynchronous data
streams using Schedulers. Simply put, Rx = Observables + LINQ +
Schedulers.
Whether you are authoring a traditional desktop or web-based
application, you have to deal with asynchronous and event-based
programming from time to time. Desktop applications have I/O
operations and computationally expensive tasks that might take a long
time to complete and potentially block other active threads.
Furthermore, handling exceptions, cancellation, and synchronization is
difficult and error-prone.