BatchedJoinBlock<T1,T2,T3>.ISourceBlock<Tuple<IList<T1>,IList<T2>,IList<T3>>>.ReserveMessage Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Behält sich das Recht vor, den Besitz der durch die DataflowMessageHeader-Struktur identifizierten Nachricht von dieser ISourceBlock<TOutput> an die ITargetBlock<TInput>-Schnittstelle zu übergeben
virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>,System.Collections.Generic.IList<T3>>>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<Tuple<System::Collections::Generic::IList<T1> ^, System::Collections::Generic::IList<T2> ^, System::Collections::Generic::IList<T3> ^> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<System::Collections::Generic::IList<T1> ^, System::Collections::Generic::IList<T2> ^, System::Collections::Generic::IList<T3> ^> ^>::ReserveMessage;
bool ISourceBlock<Tuple<IList<T1>,IList<T2>,IList<T3>>>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>,System.Collections.Generic.IList<T3>>> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>,System.Collections.Generic.IList<T3>>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<System.Collections.Generic.IList<'T1> * System.Collections.Generic.IList<'T2> * System.Collections.Generic.IList<'T3>> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>,System.Collections.Generic.IList<T3>>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<System.Collections.Generic.IList<'T1> * System.Collections.Generic.IList<'T2> * System.Collections.Generic.IList<'T3>> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Tuple(Of IList(Of T1), IList(Of T2), IList(Of T3)))) As Boolean Implements ISourceBlock(Of Tuple(Of IList(Of T1), IList(Of T2), IList(Of T3))).ReserveMessage
Parameter
- messageHeader
- DataflowMessageHeader
Die DataflowMessageHeader-Struktur der Nachricht, die reserviert werden soll
- target
- ITargetBlock<Tuple<IList<T1>,IList<T2>,IList<T3>>>
Die ITargetBlock<TInput>-Struktur, für die die Nachricht reserviert werden soll
Gibt zurück
true
, wenn die Nachricht erfolgreich reserviert wurde, andernfalls false
.
Implementiert
Ausnahmen
Der messageHeader
ist ungültig.
target
ist null
(Nothing
in Visual Basic).
Hinweise
Die ITargetBlock<TInput> , für die die Nachricht reserviert werden soll, muss von dieser ISourceBlock<TOutput> Instanz aus nicht verknüpft werden. Darüber hinaus hat diese ISourceBlock<TOutput> Instanz die Nachricht möglicherweise nie direkt an den ITargetBlock<TInput>angeboten.
Wenn true
zurückgegeben wird, müssen Sie anschließend entweder ConsumeMessage oder ReleaseReservation für diese Nachricht mit demselben DataflowMessageHeader und ITargetBlock<TInput>aufrufen. Wenn dies nicht der Fall ist, kann die Quelle möglicherweise keine weiteren Nachrichten an ein Ziel weitergeben.
Rufen Sie nicht auf ReserveMessage , während das Ziel interne Sperren enthält. Dies verstößt gegen die Sperrhierarchie, die erforderlich ist, um Deadlocks in einem Dataflownetzwerk zu vermeiden.