Tasks and the Event-based Asynchronous Pattern

As has been discussed previously, one of the new features in the Task Parallel Library is TaskCompletionSource<TResult>, which enables the creation of a Task<TResult> that represents any other asynchronous operation. There are a wide variety of sources in the .NET Framework for asynchronous work. One comes from components th...