ISourceBlock<TOutput>.ReserveMessage Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
true
pokud 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.