Concurrent programming, as we have seen in common threading patterns, is being simplified day-by-day. In .NET 4.0 Microsoft introduced a new complex type Task that simplifies the asynchrony more than ever before. The concurrency has been separated with asynchrony and the task is named as something that is expected in future. Every asynchronous operation is specified with a task either by using CPU cycles, an input/output operation, a Network card, or even some other device. The tasks are identified by
SynchronizationContext when the operation has finished its execution and gets you the result to the calling environment.
The Task Parallel Library (TPL) inherently uses