ISourceBlock<TOutput>.ReserveMessage Metodo

Definizione

Chiamato da un oggetto collegato ITargetBlock<TInput> per riservare un oggetto offerto DataflowMessageHeader in precedenza da questo ISourceBlock<TOutput>oggetto .

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

Oggetto DataflowMessageHeader del messaggio riservato.

target
ITargetBlock<TOutput>

Prenotazione ITargetBlock<TInput> del messaggio.

Valori restituiti

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

Eccezioni

l'oggetto messageHeader non è valido.

Il 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> chiamare ConsumeMessage successivamente 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 contiene blocchi interni. In questo modo verrà violata la gerarchia di blocchi necessaria per evitare deadlock in una rete di flussi di dati.

Si applica a