Condividi tramite


ITargetBlock<TInput>.OfferMessage Metodo

Definizione

Offre un messaggio al ITargetBlock<TInput> e fornisce alla destinazione la possibilità di utilizzare o posticipare il messaggio.

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

Parametri

messageHeader
DataflowMessageHeader

Un'istanza DataflowMessageHeader che rappresenta l'intestazione del messaggio che viene offerto.

messageValue
TInput

Valore del messaggio offerto.

source
ISourceBlock<TInput>

ISourceBlock<TOutput> che offre il messaggio. Può assumere valore Null.

consumeToAccept
Boolean

Impostare su true per indicare alla destinazione di chiamare ConsumeMessage(DataflowMessageHeader, ITargetBlock<TOutput>, Boolean) in modo sincrono durante la chiamata a OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean), prima di restituire Accepted per eseguire il messaggio.

Restituisce

Stato del messaggio offerto. Se il messaggio è stato accettato dalla destinazione, viene restituito Accepted e l'origine non deve più utilizzare il messaggio offerto, in quanto è ora di proprietà della destinazione. Se il messaggio è stato posticipato dal database di destinazione, Postponed viene restituito come notifica relativa alla destinazione che potrebbe successivamente tentare di utilizzare o prenotare il messaggio. Allo stesso tempo, l'origine ancora possiede ancora il messaggio e potrebbe offrirlo ad altri blocchi.

Se la destinazione ha posticipato il messaggio in un altro modo, ma l'origine era null, viene restituito Declined.

Se la destinazione ha provato ad accettare il messaggio ma non ci è riuscito a causa della consegna di origine del messaggio a un'altra destinazione o semplicemente perché è stato eliminato, viene restituito NotAvailable.

Se il database di destinazione ha scelto di non accettare il messaggio, viene restituito Declined. Se la destinazione ha scelto di non accettare il messaggio e non accetterà un altro messaggio da questa origine, viene restituito DecliningPermanently.

Eccezioni

L'elemento messageHeader non è valido.

- oppure - consumeToAccept può essere true solo se viene specificato con un elemento source diverso da Null.

Si applica a