ISourceBlock<TOutput>.ReserveMessage Metodo

Definizione

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

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

Parametri

messageHeader
DataflowMessageHeader

DataflowMessageHeader del messaggio prenotato.

target
ITargetBlock<TOutput>

ITargetBlock<TInput> che riserva il messaggio.

Restituisce

Boolean

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

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, è ITargetBlock<TInput> necessario chiamare ConsumeMessage successivamente o ReleaseReservation per questo messaggio. In caso contrario, è possibile che l'origine non sia in grado di propagare altri messaggi a questa o ad altre destinazioni.

ReserveMessage non deve essere chiamato mentre la destinazione contiene blocchi interni. In questo modo si viola la gerarchia di blocchi necessaria per evitare deadlock in una rete di flusso di dati.

Si applica a