IPropagatorBlock<TInput,TOutput> 接口

定义

表示数据流块,该块既是数据的目标,也是数据源。

generic <typename TInput, typename TOutput>
public interface class IPropagatorBlock : System::Threading::Tasks::Dataflow::ISourceBlock<TOutput>, System::Threading::Tasks::Dataflow::ITargetBlock<TInput>
public interface IPropagatorBlock<in TInput,out TOutput> : System.Threading.Tasks.Dataflow.ISourceBlock<out TOutput>, System.Threading.Tasks.Dataflow.ITargetBlock<in TInput>
type IPropagatorBlock<'Input, 'Output> = interface
    interface ITargetBlock<'Input>
    interface IDataflowBlock
    interface ISourceBlock<'Output>
type IPropagatorBlock<'Input, 'Output> = interface
    interface IDataflowBlock
    interface ISourceBlock<'Output>
    interface ITargetBlock<'Input>
Public Interface IPropagatorBlock(Of In TInput, Out TOutput)
Implements ISourceBlock(Of Out TOutput), ITargetBlock(Of In TInput)

类型参数

TInput

指定接受 IPropagatorBlock<TInput,TOutput>的数据类型。

这是逆变类型参数。 即,可以使用指定的类型,也可以使用派生程度较低的任何类型。 有关协变和逆变的详细信息,请参阅泛型中的协变和逆变
TOutput

指定由 . IPropagatorBlock<TInput,TOutput>. 提供的数据的类型。

这是协变类型参数。 即,可以使用指定的类型,也可以使用派生程度较高的任何类型。 有关协变和逆变的详细信息,请参阅泛型中的协变和逆变
派生
实现

注解

注释

TPL 数据流库( System.Threading.Tasks.Dataflow 命名空间)未随 .NET 一起分发。 若要在 Visual Studio 中安装System.Threading.Tasks.Dataflow命名空间,请打开项目,从“项目”菜单中选择“管理 NuGet 包”,然后联机搜索包System.Threading.Tasks.Dataflow。 或者,若要使用 .NET Core CLI 安装它,请运行 dotnet add package System.Threading.Tasks.Dataflow

属性

名称 说明
Completion

获取一个 Task 表示数据流块的异步操作和完成。

(继承自 IDataflowBlock)

方法

名称 说明
Complete()

信号 IDataflowBlock 表明,它不应接受或生成更多消息,也不应再使用任何推迟的消息。

(继承自 IDataflowBlock)
ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean)

由链接 ITargetBlock<TInput> 调用以接受和使用 DataflowMessageHeader 以前由此 ISourceBlock<TOutput>提供的。

(继承自 ISourceBlock<TOutput>)
Fault(Exception)

使状态 IDataflowBlock 完成 Faulted

(继承自 IDataflowBlock)
LinkTo(ITargetBlock<TOutput>, DataflowLinkOptions)

链接到 ISourceBlock<TOutput> 指定的 ITargetBlock<TInput>

(继承自 ISourceBlock<TOutput>)
OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean)

向消息提供一条消息 ITargetBlock<TInput>,使目标有机会使用或推迟消息。

(继承自 ITargetBlock<TInput>)
ReleaseReservation(DataflowMessageHeader, ITargetBlock<TOutput>)

由链接 ITargetBlock<TInput> 调用,以释放以前 DataflowMessageHeader 保留的此 ISourceBlock<TOutput>版本。

(继承自 ISourceBlock<TOutput>)
ReserveMessage(DataflowMessageHeader, ITargetBlock<TOutput>)

由链接 ITargetBlock<TInput> 调用,以保留以前提供 DataflowMessageHeader 的方法 ISourceBlock<TOutput>

(继承自 ISourceBlock<TOutput>)

扩展方法

名称 说明
AsObservable<TOutput>(ISourceBlock<TOutput>)

创建一个新的IObservable<T>抽象。ISourceBlock<TOutput>

AsObserver<TInput>(ITargetBlock<TInput>)

创建一个新的IObserver<T>抽象。ITargetBlock<TInput>

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, DataflowLinkOptions, Predicate<TOutput>)

ISourceBlock<TOutput>使用指定的筛选器链接到指定的ITargetBlock<TInput>

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, Predicate<TOutput>)

ISourceBlock<TOutput>使用指定的筛选器链接到指定的ITargetBlock<TInput>

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>)

链接到 ISourceBlock<TOutput> 指定的 ITargetBlock<TInput>

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken)

提供一个 Task<TResult> 异步监视可用输出的源。

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

提供一个 Task<TResult> 异步监视可用输出的源。

Post<TInput>(ITargetBlock<TInput>, TInput)

将项目发布到 .ITargetBlock<TInput>

Receive<TOutput>(ISourceBlock<TOutput>, CancellationToken)

同步接收来自指定源的值,并提供用于取消操作的令牌。

Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken)

从指定源同步接收值,提供一个令牌来取消操作并观察可选的超时间隔。

Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan)

同步接收来自指定源的值,观察可选的超时期限。

Receive<TOutput>(ISourceBlock<TOutput>)

从指定的源同步接收值。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken)

从指定源异步接收值,并提供用于取消操作的令牌。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken)

从指定源异步接收值,提供一个令牌来取消操作并观察可选的超时间隔。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan)

从指定源异步接收值,观察可选的超时期限。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

从指定源异步接收值。

SendAsync<TInput>(ITargetBlock<TInput>, TInput, CancellationToken)

以异步方式向目标消息块提供消息,从而允许推迟。

SendAsync<TInput>(ITargetBlock<TInput>, TInput)

以异步方式向目标消息块提供消息,从而允许推迟。

适用于