ISourceBlock<TOutput>.ReserveMessage Metod

Definition

Anropas av en länkad ITargetBlock<TInput> till reservera en tidigare erbjuden DataflowMessageHeader av denna ISourceBlock<TOutput>.

public:
 bool ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target);
public bool ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target);
abstract member ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
Public Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Out TOutput)) As Boolean

Parametrar

messageHeader
DataflowMessageHeader

Meddelandet DataflowMessageHeader som reserveras.

target
ITargetBlock<TOutput>

Reservera ITargetBlock<TInput> meddelandet.

Returer

trueom meddelandet har reserverats. annars . false

Undantag

Är messageHeader inte giltig.

target är null.

Kommentarer

Endast ITargetBlock<TInput> instanser som är länkade till den här ISourceBlock<TOutput> instansen kan använda ReserveMessage, och de får endast användas för att reservera DataflowMessageHeader instanser som tidigare erbjöds av den här källan till målet.

Om true returneras måste du ITargetBlock<TInput> anropa antingen ConsumeMessage eller ReleaseReservation för det här meddelandet. Om du inte gör det kan källan inte kunna sprida ytterligare meddelanden till det här eller andra mål.

ReserveMessage får inte anropas medan målet håller några interna lås. Detta bryter mot den låshierarki som krävs för att undvika dödlägen i ett dataflödesnätverk.

Gäller för