TransformBlock<TInput,TOutput>.ISourceBlock<TOutput>.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.
Wird von einem verknüpften ITargetBlock<TInput> aufgerufen, um ein DataflowMessageHeader-Objekt, das von diesem ISourceBlock<TOutput>-Objekt zuvor angeboten wurde, zu reservieren.
virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<TOutput>::ReserveMessage;
bool ISourceBlock<TOutput>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<TOutput> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of TOutput)) As Boolean Implements ISourceBlock(Of TOutput).ReserveMessage
Parameter
- messageHeader
- DataflowMessageHeader
DataflowMessageHeader der Meldung, die reserviert wird.
- target
- ITargetBlock<TOutput>
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 verwendet werden, und sie muss nur verwendet ReserveMessagewerden, 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> Nachricht anschließend entweder oder ReleaseReservation für diese Nachricht aufgerufen ConsumeMessage werden. Dies kann dazu führen, dass die Quelle keine weiteren Nachrichten an diese oder andere Ziele weitergeben kann.
ReserveMessage darf nicht aufgerufen werden, während das Ziel interne Sperren hält. Dadurch wird die Sperrhierarchie verletzt, die erforderlich ist, um Deadlocks in einem Dataflow-Netzwerk zu vermeiden.