JoinBlock<T1,T2,T3>.ISourceBlock<Tuple<T1,T2,T3>>.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.
Behält sich das Recht vor, den Besitz der nachricht zu übergeben, die DataflowMessageHeader von dieser ISourceBlock<TOutput> an die ITargetBlock<TInput>.
virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2,T3>>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<Tuple<T1, T2, T3> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<T1, T2, T3> ^>::ReserveMessage;
bool ISourceBlock<Tuple<T1,T2,T3>>.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<Tuple<T1,T2,T3>> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2,T3>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2 * 'T3> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2,T3>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2 * 'T3> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Tuple(Of T1, T2, T3))) As Boolean Implements ISourceBlock(Of Tuple(Of T1, T2, T3)).ReserveMessage
Parameter
- messageHeader
- DataflowMessageHeader
Die DataflowMessageHeader Nachricht, die reserviert werden soll.
- target
- ITargetBlock<Tuple<T1,T2,T3>>
Die ITargetBlock<TInput> Nachricht, für die die Nachricht reserviert werden soll.
Gibt zurück
truewenn die Nachricht erfolgreich reserviert wurde; andernfalls . false
Implementiert
Ausnahmen
Dies messageHeader ist ungültig.
Die target ist null (Nichts in Visual Basic).
Hinweise
Die ITargetBlock<TInput> Nachricht, für die reserviert werden soll, muss nicht mit dieser ISourceBlock<TOutput> Instanz verknüpft werden. Darüber hinaus hat diese ISourceBlock<TOutput> Instanz die Nachricht möglicherweise nie direkt für die ITargetBlock<TInput>Nachricht angeboten.
Wenn true sie zurückgegeben wird, müssen Sie anschließend entweder ConsumeMessage oder ReleaseReservation für diese Nachricht mit demselben und DataflowMessageHeaderdemselben ITargetBlock<TInput> anrufen. Wenn Dies nicht der Fall ist, kann die Quelle keine weiteren Nachrichten an ein Ziel weitergeben.
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.