ITargetBlock<TInput>.OfferMessage 方法

定义

ITargetBlock<TInput> 提供消息,向目标提供使用和延迟消息的机会。

public System.Threading.Tasks.Dataflow.DataflowMessageStatus OfferMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock<in TInput> source, bool consumeToAccept);
public System.Threading.Tasks.Dataflow.DataflowMessageStatus OfferMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock<in TInput>? source, bool consumeToAccept);
abstract member OfferMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * 'Input * System.Threading.Tasks.Dataflow.ISourceBlock<'Input> * bool -> System.Threading.Tasks.Dataflow.DataflowMessageStatus
Public Function OfferMessage (messageHeader As DataflowMessageHeader, messageValue As TInput, source As ISourceBlock(Of In TInput), consumeToAccept As Boolean) As DataflowMessageStatus

参数

messageHeader
DataflowMessageHeader

表示要提供的消息的标头的 DataflowMessageHeader 实例。

messageValue
TInput

要提供的消息值。

source
ISourceBlock<TInput>

提供消息的 ISourceBlock<TOutput>。 这可能为 null。

consumeToAccept
Boolean

为使用此消息,设置为 true,以指示目标于返回 ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean) 前在进行对 OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean) 调用间同步调用 Accepted

返回

所提供消息的状态。 如果消息为该目标接受,则将返回 Accepted,将返回,并且源不应再使用提供的消息,因为其现在归目标所有。 如果消息因该目标延迟,则将以通知的形式返回 Postponed,该通知是目标稍后可能会尝试使用或保留消息的通知;同时,源仍拥有消息并将其提供给其他块。

如果目标应已推迟消息,但源是 null,则将返回 Declined

如果尝试了接受此则消息但由于将消息交付给另一目标或放弃该消息的源而错过该消息,则将返回 NotAvailable

如果目标选择不接受消息,则将返回 Declined。 如果源选择不接受该消息并将从不从此源接受另一则消息,则将返回 DecliningPermanently

例外

messageHeader 无效。

或者,如果被提供了非 null consumeToAccept,则 source 只能为 true。

适用于