BufferBlock<T>.ISourceBlock<T>.ReserveMessage Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Lo llama una interfaz ITargetBlock<TInput> vinculada para reservar una estructura DataflowMessageHeader ofrecida previamente por esta interfaz 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
Parámetros
- messageHeader
- DataflowMessageHeader
DataflowMessageHeader del mensaje que se está reservando.
- target
- ITargetBlock<T>
ITargetBlock<TInput> que reserva el mensaje.
Devoluciones
true
si se ha procesado correctamente el mensaje; de lo contrario, es false
.
Implementaciones
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.