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>。 這可能是 null。
- consumeToAccept
- Boolean
設為 true
以指示目標在呼叫 ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean) 期間以非同步方式呼叫 OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean),在傳回 Accepted 之前,以便使用訊息。
傳回
提供之訊息的狀態。 如果目標已接受訊息,則會傳回 Accepted,而且來源不應該再使用所提供的訊息,因為現在它是由目標擁有。 如果訊息已由目標延後,會以通知形式傳回 Postponed,目標稍後可能會嘗試使用或保留訊息,同時來源仍擁有訊息,而且可能會將訊息提供給其他區塊。
如果目標延後訊息,但來源為 null
,則會傳回 Declined。
如果目標嘗試接受訊息,但因為來源將訊息傳遞給另一個目標或直接捨棄訊息,使得目標遺漏訊息,則會傳回 NotAvailable。
如果目標選擇不接受訊息,則會傳回 Declined。 如果目標選擇不接受此訊息,且將不會接受來自此來源的其他訊息,則會傳回 DecliningPermanently。