System.Threading.Tasks.Dataflow Namespace

The System.Threading.Tasks.Dataflow namespace provides an actor-based programming model that supports in-process message passing for coarse-grained dataflow and pipelining tasks.

Classes

ActionBlock<TInput>

Provides a dataflow block that invokes a provided Action<T> delegate for every data element received.

BatchBlock<T>

Provides a dataflow block that batches inputs into arrays.

BatchedJoinBlock<T1,T2>

Provides a dataflow block that batches a specified number of inputs of potentially differing types provided to one or more of its targets.

BatchedJoinBlock<T1,T2,T3>

Provides a dataflow block that batches a specified number of inputs of potentially differing types provided to one or more of its targets.

BroadcastBlock<T>

Provides a buffer for storing at most one element at time, overwriting each message with the next as it arrives.

BufferBlock<T>

Provides a buffer for storing data for a Dataflow.

DataflowBlock

Provides a set of static (Shared in Visual Basic) methods for working with dataflow blocks.

DataflowBlockOptions

Provides options used to configure the processing performed by dataflow blocks.

DataflowLinkOptions

Provides options used to configure a link between dataflow blocks.

ExecutionDataflowBlockOptions

Provides options used to configure the processing performed by dataflow blocks that process each message through the invocation of a user-provided delegate. These are dataflow blocks such as ActionBlock<TInput> and TransformBlock<TInput,TOutput>.

GroupingDataflowBlockOptions

Provides options used to configure the processing performed by dataflow blocks that group together multiple messages. These are dataflow blocks such as JoinBlock<T1,T2> and BatchBlock<T>.

JoinBlock<T1,T2>

Provides a dataflow block that joins across multiple dataflow sources, not necessarily of the same type, waiting for one item to arrive for each type before they’re all released together as a tuple consisting of one item per type.

JoinBlock<T1,T2,T3>

Provides a dataflow block that joins across multiple dataflow sources, which are not necessarily of the same type, waiting for one item to arrive for each type before they’re all released together as a tuple that contains one item per type.

TransformBlock<TInput,TOutput>

Provides a dataflow block that invokes a provided Func<T,TResult> delegate for every data element received.

TransformManyBlock<TInput,TOutput>

Provides a dataflow block that invokes a provided Func<T,TResult> delegate for every data element received.

WriteOnceBlock<T>

Provides a buffer for receiving and storing at most one element in a network of dataflow blocks.

Structs

DataflowMessageHeader

Provides a container of data attributes for passing between dataflow blocks.

Interfaces

IDataflowBlock

Represents a dataflow block.

IPropagatorBlock<TInput,TOutput>

Represents a dataflow block that is both a target for data and a source of data.

IReceivableSourceBlock<TOutput>

Represents a dataflow block that supports receiving messages without linking.

ISourceBlock<TOutput>

Represents a dataflow block that is a source of data.

ITargetBlock<TInput>

Represents a dataflow block that is a target for data.

Enums

DataflowMessageStatus

Represents the status of a DataflowMessageHeader when passed between dataflow blocks.

Remarks

Note

The TPL Dataflow Library (the System.Threading.Tasks.Dataflow namespace) is not distributed with .NET. To install the System.Threading.Tasks.Dataflow namespace in Visual Studio, open your project, choose Manage NuGet Packages from the Project menu, and search online for the System.Threading.Tasks.Dataflow package. Alternatively, to install it using the .NET Core CLI, run dotnet add package System.Threading.Tasks.Dataflow.

For more information, see Dataflow.