Freigeben über


BatchBlock<T>.ISourceBlock<T[]>.ReserveMessage Methode

Definition

Wird von einem verknüpften ITargetBlock<TInput>, um einen DataflowMessageHeader, der von diesem ISourceBlock<TOutput> zuvor angeboten wurde, zu reservieren.

 virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<T[]>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<cli::array <T> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<cli::array <T> ^>::ReserveMessage;
bool ISourceBlock<T[]>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<T[]> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<T[]>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T[]> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<T[]>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T[]> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of T())) As Boolean Implements ISourceBlock(Of T()).ReserveMessage

Parameter

messageHeader
DataflowMessageHeader

DataflowMessageHeader der Meldung, die reserviert wird.

target
ITargetBlock<T[]>

Die ITargetBlock<TInput> der Meldung empfängt.

Gibt zurück

true, wenn die Nachricht erfolgreich reserviert wurde, andernfalls false.

Implementiert

Ausnahmen

Der messageHeader ist ungültig.

target ist null.

Hinweise

Nur ITargetBlock<TInput> Instanzen, die mit dieser ISourceBlock<TOutput> Instanz verknüpft sind, können verwenden ReserveMessageund dürfen nur verwendet werden, um Instanzen zu reservieren DataflowMessageHeader , die zuvor von dieser Quelle für das Ziel angeboten wurden.

Wenn true zurückgegeben wird, muss die ITargetBlock<TInput> entweder oder ConsumeMessageReleaseReservation für diese Nachricht aufrufen. Andernfalls kann die Quelle keine weiteren Nachrichten an dieses oder andere Ziele verteilen.

ReserveMessage darf nicht aufgerufen werden, 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: