Skip to main content

TPL Dataflow


TPL Dataflow

The Task Parallel Library (TPL) was introduced in the .NET Framework 4, providing core building blocks and algorithms for parallel computation and asynchrony. This work was centered around the System.Threading.Tasks.Task type, as well as on a few higher-level constructs. These higher-level constructs address a specific subset of common parallel patterns, e.g. Parallel.For/ForEach for delightfully parallel problems expressible as parallelized loops.

While a significant step forward in enabling developers to parallelize their applications, this work did not provide higher-level constructs necessary to tackle all parallel problems or to easily implement all parallel patterns. In particular, it did not focus on problems best expressed with agent-based models or those based on message-passing paradigms. These kinds of problems are quite prevalent in the technical computing domains of finance, biological sciences, oil & gas, and more.

For TPL Dataflow (TDF), we build upon the foundational layer provided in TPL in .NET 4. TDF is a complementary set of primitives to those primitives delivered in TPL in .NET 4, addressing additional scenarios beyond those directly and easily supported with the original APIs. TPL Dataflow utilizes tasks, concurrent collections, tuples, and other features introduced in .NET 4 to bring support for parallel dataflow-based programming into the .NET Framework. It also directly integrates with new language support for tasks and asynchrony provided by both C# and Visual Basic, and with existing language support in .NET 4 for tasks provided by F#.

 


Feedback

Give feedback about TPL Dataflow in the DevLabs Forums.

TPL Dataflow

Load balancing with refusal
So I have what I'd like to think is a really trivial problem to solve, and thus this may be a stupid question :)I have tasks of work to process, each... 詳細情報
金曜日, 5 25
Parallelizing blocks that are not thread-safe
For blocks that perform pure thread-safe computations parallelism is easy: create a block and set its MaxDegreeOfParallelism to more than one. I was ... 詳細情報
水曜日, 5 23
Thread safety
Hi!I have a need to use BufferBlock as a single data input point in multithreading environment.Can you suggest me, is Post method of BufferBlock cla... 詳細情報
月曜日, 5 21
Completion of multiple ISourceBlocks
If more than source block is linked to a single target block, all propagating their completion, then should the target block become when any or all of... 詳細情報
木曜日, 5 10

Get TPL Dataflow

TPL Dataflow utilizes tasks, concurrent collections, tuples, and other features introduced in .NET 4 to bring support for parallel dataflow-based programming into the .NET Framework.

Get Started

Download TPL Dataflow.
Read the TPL Dataflow Readme.


Requirements

  • .NET Framework 4.0