Freigeben über


BatchedJoinBlock<T1,T2>.ISourceBlock<Tuple<IList<T1>,IList<T2>>>.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>>>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<Tuple<System::Collections::Generic::IList<T1> ^, System::Collections::Generic::IList<T2> ^> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<System::Collections::Generic::IList<T1> ^, System::Collections::Generic::IList<T2> ^> ^>::ReserveMessage;
bool ISourceBlock<Tuple<IList<T1>,IList<T2>>>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>>> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<System.Collections.Generic.IList<'T1> * System.Collections.Generic.IList<'T2>> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<System.Collections.Generic.IList<T1>,System.Collections.Generic.IList<T2>>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<System.Collections.Generic.IList<'T1> * System.Collections.Generic.IList<'T2>> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Tuple(Of IList(Of T1), IList(Of T2)))) As Boolean Implements ISourceBlock(Of Tuple(Of IList(Of T1), IList(Of T2))).ReserveMessage

Parameter

messageHeader
DataflowMessageHeader

Die DataflowMessageHeader-Struktur der Nachricht, die reserviert werden soll

target
ITargetBlock<Tuple<IList<T1>,IList<T2>>>

Die ITargetBlock<TInput>-Struktur, für die die Nachricht reserviert werden soll

Gibt zurück

Boolean

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> Nachricht, für die die Nachricht reserviert werden soll, muss von dieser ISourceBlock<TOutput> Instanz nicht verknüpft werden. Darüber hinaus hat diese ISourceBlock<TOutput> Instanz möglicherweise nie die Nachricht direkt an die ITargetBlock<TInput>Nachricht angeboten.

Wenn true zurückgegeben wird, müssen Sie anschließend entweder ConsumeMessage oder ReleaseReservation für diese Nachricht mit derselben DataflowMessageHeader und ITargetBlock<TInput>. Wenn Sie nicht sind, kann die Quelle möglicherweise keine weiteren Nachrichten an ein Ziel verteilen.

Rufen Sie nicht auf ReserveMessage , während das Ziel interne Sperren hält. Dadurch wird die Sperrhierarchie verletzt, die erforderlich ist, um Deadlocks in einem Datenflussnetzwerk zu vermeiden.

Gilt für