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> 訊息。 這可能是無效的。

consumeToAccept
Boolean

設為 以true指示目標在呼叫 ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean)時同步呼叫OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean),然後再返回 Accepted,以便消費訊息。

傳回

所提供的訊息狀態。 如果訊息被目標接受, Accepted 則會回傳,且來源不應再使用該訊息,因為該訊息現在屬於目標所有。 若訊息被目標 Postponed 延遲,則會以通知形式回傳,表示目標日後可能會嘗試使用或保留該訊息;在此期間,訊息來源仍擁有該訊息,並可能將其提供給其他區塊。

如果目標本應延遲訊息,但來源卻是 nullDeclined 則會被回傳。

如果目標嘗試接收訊息但因來源將訊息傳遞給其他目標或直接丟棄而錯過,則 NotAvailable 會回傳訊息。

如果目標選擇不接受訊息, Declined 則會回傳。 如果目標選擇不接受該訊息,且永遠不會再接受來自該來源的訊息,則 DecliningPermanently 會回傳。

例外狀況

這個 messageHeader 並不成立。

-或- consumeToAccept 只有在提供非空 source元素時才可能成立。

適用於