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>, um einen DataflowMessageHeader, der von diesem ISourceBlock<TOutput> zuvor angeboten wurde, zu reservieren.
public:
bool ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target);
public bool ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target);
abstract member ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
Public Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Out TOutput)) As Boolean
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
.
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 ReserveMessage, und es darf 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 anschließend ITargetBlock<TInput> entweder ConsumeMessage oder ReleaseReservation für diese Nachricht aufgerufen werden. Andernfalls kann die Quelle keine weiteren Nachrichten an dieses oder andere Ziele weitergeben.
ReserveMessage darf nicht aufgerufen werden, während das Ziel interne Sperren enthält. Dadurch wird die Sperrhierarchie verletzt, die erforderlich ist, um Deadlocks in einem Dataflownetzwerk zu vermeiden.