BufferBlock<T>.ISourceBlock<T>.ReserveMessage 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이전에 제공 ITargetBlock<TInput> 된 예약을 위해 연결된 DataflowMessageHeader 사용자에 의해 호출됩니다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
매개 변수
- messageHeader
- DataflowMessageHeader
DataflowMessageHeader 예약 중인 메시지의 이름입니다.
- target
- ITargetBlock<T>
ITargetBlock<TInput> 메시지 예약입니다.
반품
true메시지가 성공적으로 예약되었으면 이고, 그렇지 않으면 . false
구현
예외
유효 messageHeader 하지 않습니다.
target은 null입니다.
설명
이 ITargetBlock<TInput> 인스턴스에 연결된 인스턴스만 ISourceBlock<TOutput> 사용할 ReserveMessage수 있으며 이 원본에서 이전에 제공한 인스턴스를 대상에 예약 DataflowMessageHeader 하는 데만 사용해야 합니다.
반환되는 경우 true 이후에 이 메시지 중 하나 ITargetBlock<TInput> 또는 ConsumeMessage 이 메시지를 호출해야 ReleaseReservation 합니다. 이렇게 하지 않으면 원본이 이 메시지 또는 다른 대상에 추가 메시지를 전파할 수 없게 될 수 있습니다.
ReserveMessage 는 대상이 내부 잠금을 보유하는 동안 호출되지 않아야 합니다. 이렇게 하면 데이터 흐름 네트워크의 교착 상태를 방지하는 데 필요한 잠금 계층 구조를 위반합니다.