5

In the context of C#, .NET 4/4.5 used for an application running on a web-server, what is the relationship between "Task Parallel Library" and "Task-based Asynchronous Pattern"?

I understand one is a library and the other is a pattern. But to dig deeper, is it like "The library is used by the pattern to enforce good practices". I'm also not clear if both are supported in .NET 4.0 (with await and async keywords)

Edit: Seems that await and async are only in .NET 4.5 ...

  • 1
    One is a library that helps with running tasks in parallel. The other is a programming pattern for asynchronous tasks. They can work together. As an aside - you really should be linking to the sources of both phrases in your question. – Oded Nov 27 '12 at 20:12
  • clarified and linked up – DeepSpace101 Nov 27 '12 at 20:18
  • Read the articles you've linked. They explain it pretty well (the first sentence in the Task-based AP article clarifies your edit) – Steven Evers Nov 27 '12 at 20:22
  • 1
    async and await are C# features, not .Net features, although in the case of the Task class, the methods required by the compiler only exist in .Net 4.5. You can use async/await in .Net 4 using the 'async targeting pack': microsoft.com/en-us/download/details.aspx?id=29576 – Lee Nov 27 '12 at 22:22
  • 1
    @JimmyHoffa - TAP is just a number of conventions around methods returning Task instances, and is not directly related to CPS. The C# async/await features simplify writing task continuations however. – Lee Nov 27 '12 at 22:27
3

The TPL is a new(ish) framework that provides a simplified API for concurrent programming. The Task-Based Asynchronous Pattern is a framework design guideline that leverages the TPL to deliver consistently designed concurrent operations.

The async/await keywords are syntactic sugar that allow you to consume TAP APIs without diving into the details of continuation.

  • so TPL extends TAP or TAP extends TPL? Put another way, TPL is newer/preferred compared to TAP? – Don Cheadle Oct 20 '16 at 14:08
  • 1
    @mmcrae - if I understand correctly, they are not extensions of each other. It seems from this answer that TPL is a framework to make life easier for developers. TAP is a design guideline (a pattern) that uses TPL as part of its guideline/recommendation for how to design concurrent operations in a consistent way. Michael Brown - I have explained that accurately? – namford Nov 21 '16 at 16:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.