JoinBlock<T1,T2>.ISourceBlock<Tuple<T1,T2>>.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í.
Vyhrazuje si právo předat vlastnictví zprávy identifikované DataflowMessageHeader z tohoto ISourceBlock<TOutput>ITargetBlock<TInput>na .
virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2>>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<Tuple<T1, T2> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<T1, T2> ^>::ReserveMessage;
bool ISourceBlock<Tuple<T1,T2>>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<Tuple<T1,T2>> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Tuple(Of T1, T2))) As Boolean Implements ISourceBlock(Of Tuple(Of T1, T2)).ReserveMessage
Parametry
- messageHeader
- DataflowMessageHeader
Zpráva DataflowMessageHeader , která má být rezervována.
- target
- ITargetBlock<Tuple<T1,T2>>
Hodnota ITargetBlock<TInput> , pro kterou má být zpráva vyhrazena.
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á.
null
Je target
(Nothing v jazyce Visual Basic).
Poznámky
Objekt ITargetBlock<TInput> , pro který má být zpráva vyhrazena, nemusí být z této ISourceBlock<TOutput> instance propojen. Kromě toho tato ISourceBlock<TOutput> instance nikdy nenabídla zprávu přímo do objektu ITargetBlock<TInput>.
Pokud true
se vrátí, musíte následně volat buď ConsumeMessage nebo ReleaseReservation pro tuto zprávu se stejnými DataflowMessageHeader a ITargetBlock<TInput>. Pokud to neuděláte, zdroj možná nebude moct rozšířit žádné další zprávy do žádného cíle.
Nevolejte ReserveMessage , když 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.