ISourceBlock<TOutput>.ReserveMessage Método

Definição

Chamado por um ligado ITargetBlock<TInput> para reservar um já oferecido DataflowMessageHeader por isto 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

Parâmetros

messageHeader
DataflowMessageHeader

A DataflowMessageHeader da mensagem a ser reservada.

target
ITargetBlock<TOutput>

Reservar ITargetBlock<TInput> a mensagem.

Devoluções

true se a mensagem foi reservada com sucesso; caso contrário, false.

Exceções

O messageHeader não é válido.

O target é null.

Observações

Apenas ITargetBlock<TInput> as instâncias ligadas a esta ISourceBlock<TOutput> instância podem usar ReserveMessage, e ela só deve ser usada para reservar DataflowMessageHeader instâncias anteriormente oferecidas por esta fonte ao alvo.

Se true for devolvido, deve ITargetBlock<TInput> subsequentemente chamar ou ConsumeMessage ou ReleaseReservation para esta mensagem. A falha em fazê-lo pode resultar na incapacidade da fonte de propagar quaisquer mensagens adicionais para este ou outros alvos.

ReserveMessage não deve ser chamado enquanto o alvo estiver a manter quaisquer bloqueios internos. Fazê-lo violará a hierarquia de bloqueios necessária para evitar deadlocks numa rede de fluxo de dados.

Aplica-se a