BroadcastBlock<T>.ISourceBlock<T>.ReserveMessage Metod

Definition

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

 virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<T>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<T> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<T>::ReserveMessage;
bool ISourceBlock<T>.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<T> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<T>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<T>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of T)) As Boolean Implements ISourceBlock(Of T).ReserveMessage

Parametrar

messageHeader
DataflowMessageHeader

Meddelandet DataflowMessageHeader som reserveras.

target
ITargetBlock<T>

Reservera ITargetBlock<TInput> meddelandet.

Returer

trueom meddelandet har reserverats. annars . false

Implementeringar

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