Condividi tramite


WriteOnceBlock<T>.ISourceBlock<T>.ReserveMessage Metodo

Definizione

Chiamato da un ITargetBlock<TInput> collegato per conservare un DataflowMessageHeader precedentemente offerto da questo ISourceBlock<TOutput>.

 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

Parametri

messageHeader
DataflowMessageHeader

DataflowMessageHeader del messaggio prenotato.

target
ITargetBlock<T>

ITargetBlock<TInput> che riserva il messaggio.

Restituisce

true se il messaggio è stato riservato, false in caso contrario.

Implementazioni

Eccezioni

L'elemento messageHeader non è valido.

L'elemento target è null.

Commenti

Solo ITargetBlock<TInput> le istanze collegate a questa ISourceBlock<TOutput> istanza possono usare ReserveMessagee devono essere usate solo per riservare DataflowMessageHeader le istanze offerte in precedenza da questa origine alla destinazione.

Se true viene restituito, deve ITargetBlock<TInput> successivamente chiamare ConsumeMessage o ReleaseReservation per questo messaggio. In caso contrario, l'origine potrebbe non essere in grado di propagare altri messaggi a questa o ad altre destinazioni.

ReserveMessage non deve essere chiamato mentre la destinazione mantiene eventuali blocchi interni. In questo modo verrà violata la gerarchia di blocchi necessaria per evitare deadlock in una rete del flusso di dati.

Si applica a