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

Параметры

messageHeader
DataflowMessageHeader

Сообщение DataflowMessageHeader , которое должно быть зарезервировано.

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

Значение ITargetBlock<TInput> , для которого должно быть зарезервировано сообщение.

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

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

Реализации

Исключения

Недопустимый messageHeader параметр.

Значение target равно null (Nothing в Visual Basic).

Комментарии

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

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

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

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