TransformManyBlock<TInput,TOutput>.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á propojený ITargetBlock<TInput> , aby si rezervoval dříve nabízený DataflowMessageHeader tento ISourceBlock<TOutput>.
virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<TOutput>::ReserveMessage;
bool ISourceBlock<TOutput>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<TOutput> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of TOutput)) As Boolean Implements ISourceBlock(Of TOutput).ReserveMessage
Parametry
- messageHeader
- DataflowMessageHeader
Zpráva DataflowMessageHeader , která je rezervována.
- 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
Implementuje
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
je vrácena, ITargetBlock<TInput> musí následně volat buď ConsumeMessage nebo ReleaseReservation pro tuto zprávu. Pokud to neuděláte, může to vést k tomu, ž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ží interní zámky. Tím dojde k porušení hierarchie zámků, která je nezbytná k tomu, aby se zabránilo vzájemnému zablokování v síti toku dat.