JoinBlock<T1,T2>.ISourceBlock<Tuple<T1,T2>>.ReserveMessage(DataflowMessageHeader, ITargetBlock<Tuple<T1,T2>>) Метод

Определение

Резервирует право владения сообщением, идентифицируемым DataflowMessageHeader, из ISourceBlock<TOutput> в ITargetBlock<TInput>.Reserves the right to pass the ownership of the message identified by the DataflowMessageHeader from this ISourceBlock<TOutput> to the ITargetBlock<TInput>.

 virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2>>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<Tuple<T1, T2> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<T1, T2> ^>::ReserveMessage;
bool ISourceBlock<Tuple<T1,T2>>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<Tuple<T1,T2>> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Tuple(Of T1, T2))) As Boolean Implements ISourceBlock(Of Tuple(Of T1, T2)).ReserveMessage

Параметры

messageHeader
DataflowMessageHeader

Объект DataflowMessageHeader сообщения, которое требуется зарезервировать.The DataflowMessageHeader of the message that is to be reserved.

target
ITargetBlock<Tuple<T1,T2>>

Объект ITargetBlock<TInput>, для которого будет зарезервировано сообщение.The ITargetBlock<TInput> for which the message is to be reserved.

Возвращаемое значение

Boolean

Значение true, если сообщение было успешно зарезервировано; в противном случае — значение false.true if the message was successfully reserved; otherwise, false.

Реализации

Исключения

Недопустимое значение messageHeader.The messageHeader is not valid.

target имеет значение null (nothing в Visual Basic).The target is null (Nothing in Visual Basic).

Комментарии

Объект, ITargetBlock<TInput> для которого зарезервировано сообщение, не должен быть связан с этим ISourceBlock<TOutput> экземпляром.The ITargetBlock<TInput> for which the message is to be reserved need not be linked from this ISourceBlock<TOutput> instance. Более того, этот ISourceBlock<TOutput> экземпляр может никогда не предлагать сообщение непосредственно в ITargetBlock<TInput> .Moreover, this ISourceBlock<TOutput> instance may have never offered the message directly to the ITargetBlock<TInput>.

Если true возвращается, то необходимо вызвать либо ConsumeMessage ReleaseReservation для этого сообщения с тем же DataflowMessageHeader и ITargetBlock<TInput> .If true is returned, you must subsequently call either ConsumeMessage or ReleaseReservation for this message with the same DataflowMessageHeader and ITargetBlock<TInput>. В противном случае источник не сможет распространить последующие сообщения на любой целевой объект.If you don't, the source may be unable to propagate any further messages to any target.

Не вызывайте ReserveMessage , пока целевой объект удерживает какие-либо внутренние блокировки.Don't call ReserveMessage while the target is holding any internal locks. Это приведет к нарушению иерархии блокировок, необходимой для предотвращения взаимоблокировок в сети потока данных.Doing so will violate the lock hierarchy necessary to avoid deadlocks in a dataflow network.

Применяется к