ITargetBlock<TInput>.OfferMessage 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
向 ,提供訊息 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> 訊息。 這可能是無效的。
- consumeToAccept
- Boolean
設為 以true指示目標在呼叫 ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean)時同步呼叫OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean),然後再返回 Accepted,以便消費訊息。
傳回
所提供的訊息狀態。 如果訊息被目標接受, Accepted 則會回傳,且來源不應再使用該訊息,因為該訊息現在屬於目標所有。 若訊息被目標 Postponed 延遲,則會以通知形式回傳,表示目標日後可能會嘗試使用或保留該訊息;在此期間,訊息來源仍擁有該訊息,並可能將其提供給其他區塊。
如果目標本應延遲訊息,但來源卻是 null, Declined 則會被回傳。
如果目標嘗試接收訊息但因來源將訊息傳遞給其他目標或直接丟棄而錯過,則 NotAvailable 會回傳訊息。
如果目標選擇不接受訊息, Declined 則會回傳。 如果目標選擇不接受該訊息,且永遠不會再接受來自該來源的訊息,則 DecliningPermanently 會回傳。