Share via


ISourceBlock<TOutput>.ReserveMessage Método

Definición

Lo llama una interfaz ITargetBlock<TInput> vinculada para reservar una estructura DataflowMessageHeader ofrecida previamente por esta interfaz 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

DataflowMessageHeader del mensaje que se está reservando.

target
ITargetBlock<TOutput>

ITargetBlock<TInput> que reserva el mensaje.

Devoluciones

Boolean

true si se ha procesado correctamente el mensaje; de lo contrario, es false.

Excepciones

messageHeader no es válido.

El valor de target es null.

Comentarios

Solo ITargetBlock<TInput> las instancias vinculadas a esta ISourceBlock<TOutput> instancia pueden usar ReserveMessagey solo se deben usar para reservar DataflowMessageHeader instancias ofrecidas anteriormente por este origen al destino.

Si true se devuelve , ITargetBlock<TInput> debe llamar ConsumeMessage posteriormente a o ReleaseReservation para este mensaje. Si no lo hace, es posible que el origen no pueda propagar más mensajes a este u otros destinos.

ReserveMessage no debe llamarse mientras el destino contiene bloqueos internos. Si lo hace, se infringirá la jerarquía de bloqueos necesaria para evitar interbloqueos en una red de flujo de datos.

Se aplica a