ISourceBlock<TOutput>.ReserveMessage Metoda

Definicja

Wywoływana przez element połączonyITargetBlock<TInput>, aby zarezerwować wcześniej oferowaną przez tę ISourceBlock<TOutput>usługę DataflowMessageHeader .

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

Parametry

messageHeader
DataflowMessageHeader

Wartość DataflowMessageHeader komunikatu jest zarezerwowana.

target
ITargetBlock<TOutput>

Rezerwowanie ITargetBlock<TInput> wiadomości.

Zwraca

Boolean

true jeśli komunikat został pomyślnie zarezerwowany; w przeciwnym razie , false.

Wyjątki

Wartość jest nieprawidłowa messageHeader .

Wartość target to null.

Uwagi

Tylko ITargetBlock<TInput> wystąpienia połączone z tym ISourceBlock<TOutput> wystąpieniem mogą używać parametru ReserveMessagei muszą być używane tylko do rezerwowania DataflowMessageHeader wystąpień oferowanych wcześniej przez to źródło do obiektu docelowego.

Jeśli true zostanie zwrócona, ITargetBlock<TInput> element musi następnie wywołać metodę ConsumeMessage lub ReleaseReservation dla tej wiadomości. Niepowodzenie tej czynności może spowodować, że źródło nie może propagować dalszych komunikatów do tych lub innych elementów docelowych.

ReserveMessage nie może być wywoływany, gdy element docelowy posiada jakiekolwiek blokady wewnętrzne. Spowoduje to naruszenie hierarchii blokady niezbędnej do uniknięcia zakleszczeń w sieci przepływu danych.

Dotyczy