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 指出目标以后可能会尝试使用或保留消息;在此期间,源仍拥有该消息,并可能将其提供给其他块。

如果目标本来会推迟消息,但源是 nullDeclined 则改为返回。

如果目标尝试接受消息,但由于将消息传送到另一个目标或只是放弃消息的源而错过了该消息, NotAvailable 则返回。

如果目标选择不接受消息, Declined 则返回。 如果目标选择不接受该消息,并且永远不会接受来自此源的另一条消息, DecliningPermanently 则返回。

例外

无效 messageHeader

- 或 - consumeToAccept 仅当提供非 null source时,才可能为 true。

适用于