BufferBlock<T>.ISourceBlock<T>.ReserveMessage Metoda

Definicja

Wywoływana przez połączonego ITargetBlock<TInput> z rezerwą wcześniej oferowaną DataflowMessageHeader przez tę ISourceBlock<TOutput>usługę .

 virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<T>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<T> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<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

Parametry

messageHeader
DataflowMessageHeader

Wiadomość jest zarezerwowana DataflowMessageHeader .

target
ITargetBlock<T>

Rezerwowanie ITargetBlock<TInput> wiadomości.

Zwraca

true jeśli wiadomość została pomyślnie zarezerwowana; w przeciwnym razie , false.

Implementuje

Wyjątki

Wartość jest nieprawidłowa messageHeader .

Element target to null.

Uwagi

Tylko ITargetBlock<TInput> wystąpienia połączone z tym ISourceBlock<TOutput> wystąpieniem mogą używać ReserveMessageklasy i 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ć komunikat ConsumeMessage lub ReleaseReservation dla tego komunikatu. Niepowodzenie tej czynności może spowodować, że źródło nie może rozpropagować dalszych komunikatów do tych lub innych obiektów docelowych.

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

Dotyczy