Поделиться через


BatchedJoinBlock<T1,T2>.ISourceBlock<Tuple<IList<T1>,IList<T2>>>.ReserveMessage Метод

Определение

Резервирует право владения сообщением, идентифицируемым DataflowMessageHeader, из ISourceBlock<TOutput> в ITargetBlock<TInput>.

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

Параметры

messageHeader
DataflowMessageHeader

Объект DataflowMessageHeader сообщения, которое требуется зарезервировать.

target
ITargetBlock<Tuple<IList<T1>,IList<T2>>>

Объект ITargetBlock<TInput>, для которого будет зарезервировано сообщение.

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

Значение true, если сообщение было успешно зарезервировано; в противном случае — значение false.

Реализации

Исключения

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

target — это null (Nothing в Visual Basic).

Комментарии

Объект ITargetBlock<TInput> , для которого необходимо зарезервировать сообщение, не должен быть связан с этим ISourceBlock<TOutput> экземпляром. Кроме того, этот ISourceBlock<TOutput> экземпляр, возможно, никогда не предоставлял сообщение непосредственно в ITargetBlock<TInput>.

Если true возвращается значение , в дальнейшем необходимо вызвать или ConsumeMessageReleaseReservation для этого сообщения с теми же DataflowMessageHeader и ITargetBlock<TInput>. В противном случае источнику может быть не удается распространить дополнительные сообщения на какой-либо целевой объект.

Не вызывайте, ReserveMessage пока целевой объект удерживает какие-либо внутренние блокировки. Это приведет к нарушению иерархии блокировок, необходимой для предотвращения взаимоблокировок в сети потока данных.

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