다음을 통해 공유


ITargetBlock<TInput>.OfferMessage 메서드

정의

메시지를 ITargetBlock<TInput>에 제공하며 대상에서 메시지를 선택적으로 사용하거나 연기할 수 있습니다.

public System.Threading.Tasks.Dataflow.DataflowMessageStatus OfferMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock<in TInput> source, bool consumeToAccept);
public System.Threading.Tasks.Dataflow.DataflowMessageStatus OfferMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, TInput messageValue, System.Threading.Tasks.Dataflow.ISourceBlock<in TInput>? source, bool consumeToAccept);
abstract member OfferMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * 'Input * System.Threading.Tasks.Dataflow.ISourceBlock<'Input> * bool -> System.Threading.Tasks.Dataflow.DataflowMessageStatus
Public Function OfferMessage (messageHeader As DataflowMessageHeader, messageValue As TInput, source As ISourceBlock(Of In TInput), consumeToAccept As Boolean) As DataflowMessageStatus

매개 변수

messageHeader
DataflowMessageHeader

제공되는 메시지의 헤더를 나타내는 DataflowMessageHeader 인스턴스입니다.

messageValue
TInput

제공되는 메시지의 값입니다.

source
ISourceBlock<TInput>

메시지를 제공하는 ISourceBlock<TOutput>입니다. null일 수 있습니다.

consumeToAccept
Boolean

메시지를 사용하기 위해 ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean)를 반환하기 전에 OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean)를 호출하는 동안 Accepted를 동기적으로 호출하도록 대상에 지시하려면 true로 설정합니다.

반환

DataflowMessageStatus

제공된 메시지의 상태입니다. 메시지가 대상에서 허용된 경우 Accepted가 반환되고 원본은 현재 대상에서 그대로 소유하고 있으므로 제안된 메시지를 더 이상 사용할 수 없습니다. 메시지가 대상에 의해 연기된 경우 Postponed는 나중에 메시지를 사용하거나 예약하려고 시도할 수 있는 알림으로 반환됩니다. 그 동안 소스는 메시지를 계속 소유하고 있으며 다른 블록에 메시지를 제공할 수 있습니다.

대상이 메시지를 연기해야 하지만 원본이 null인 경우 Declined가 대신 반환됩니다.

대상이 메시지를 받으려고 시도했지만 다른 대상에 메시지를 전달하는 소스 또는 단순히 삭제로 인해 누락된 경우 NotAvailable이 반환됩니다.

대상이 메시지를 수락하지 않도록 선택한 경우 Declined이 반환 됩니다. 대상이 메시지를 받지 않도록 선택했고 이 소스에서 다른 메시지를 받지 않을 경우 DecliningPermanently이 반환됩니다.

예외

messageHeader이 유효하지 않은 경우

또는 null이 아닌 source가 제공되는 경우 consumeToAccept는 true만 될 수 있습니다.

적용 대상