Freigeben über


BatchedJoinBlock<T1,T2,T3>.ISourceBlock<Tuple<IList<T1>,IList<T2>,IList<T3>>>.ReserveMessage Methode

Definition

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.

Gilt für: