TaskCompletionSource

Sign in to queue

Description

Join Danny Shih as he introduces the TaskCompletionSource<TResult> type.  He’ll cover basic usage and walk through a full scenario

Learn more about the .NET Framework 4 and keep abreast of Parallel Computing tools and techniques via the Concurrency Dev Center.

See all videos in this series.

Embed

Download

Download this episode

The Discussion

  • User profile image
    Flynn0r

    Very nice, thank you

  • User profile image
    cgillum

    Perhaps I need to do more research on the new Task APIs, but I didn't quite understand why we would use a TaskCompletionSource<T> instead of using the EAP functionality directly.  Is it because the Task APIs give us better tooling/functionality than EAP?

  • User profile image
    Toub

    Hi cgillum-

     

    This was just an example Danny was providing on how TCS<T> could be used to represent any asynchronous operation, including EAP implementations.  However, the compositionality provided by Task<T> now allows you to start doing some really useful things.   For example, if you wanted to download a bunch of web pages asynchronously and then only do something when all of them were complete, with WebClient by itself you'd have to code up that logic manually; in contrast, if you had a Task<T> for each download, you could then use ContinueWhenAll to launch additional work when all of those downloads completed (and you'd get back a Task that represents that continuation).  In short, once you have a Task<T> to represent the EAP operation, you can compose it with any other tasks you might have, and you have the full functionality afforded to tasks to process that EAP operation.

     

Add Your 2 Cents