Sdílet prostřednictvím


ISourceBlock<TOutput>.ReserveMessage Metoda

Definice

Volá se propojeným ITargetBlock<TInput> uživatelem, aby si rezervoval dříve nabízený DataflowMessageHeaderISourceBlock<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

Parametry

messageHeader
DataflowMessageHeader

Rezervovaná DataflowMessageHeader zpráva.

target
ITargetBlock<TOutput>

Rezervace ITargetBlock<TInput> zprávy.

Návraty

truepokud byla zpráva úspěšně rezervována; v opačném případě . false

Výjimky

Hodnota messageHeader není platná.

Hodnota target je null.

Poznámky

Používat mohou pouze ITargetBlock<TInput> instance propojené s touto ISourceBlock<TOutput> instancí a musí být použity pouze k rezervaci DataflowMessageHeader instancí dříve nabízených tímto zdrojem pro ReserveMessagecíl.

Pokud true se vrátí, ITargetBlock<TInput> musí následně pro tuto zprávu volat buď ConsumeMessage nebo ReleaseReservation . Pokud to neuděláte, může to mít za následek, že zdroj nebude moct rozšířit žádné další zprávy do tohoto nebo jiného cíle.

ReserveMessage nesmí být volána, pokud cíl drží jakékoli vnitřní zámky. Tím dojde k porušení hierarchie zámků nezbytné k tomu, aby se zabránilo vzájemnému zablokování v síti toku dat.

Platí pro