Condividi tramite


WriteOnceBlock<T>.ITargetBlock<T>.OfferMessage Metodo

Definizione

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

 virtual System::Threading::Tasks::Dataflow::DataflowMessageStatus System.Threading.Tasks.Dataflow.ITargetBlock<T>.OfferMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, T messageValue, System::Threading::Tasks::Dataflow::ISourceBlock<T> ^ source, bool consumeToAccept) = System::Threading::Tasks::Dataflow::ITargetBlock<T>::OfferMessage;
System.Threading.Tasks.Dataflow.DataflowMessageStatus ITargetBlock<T>.OfferMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, T messageValue, System.Threading.Tasks.Dataflow.ISourceBlock<T> source, bool consumeToAccept);
abstract member System.Threading.Tasks.Dataflow.ITargetBlock<T>.OfferMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * 'T * System.Threading.Tasks.Dataflow.ISourceBlock<'T> * bool -> System.Threading.Tasks.Dataflow.DataflowMessageStatus
override this.System.Threading.Tasks.Dataflow.ITargetBlock<T>.OfferMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * 'T * System.Threading.Tasks.Dataflow.ISourceBlock<'T> * bool -> System.Threading.Tasks.Dataflow.DataflowMessageStatus
Function OfferMessage (messageHeader As DataflowMessageHeader, messageValue As T, source As ISourceBlock(Of T), consumeToAccept As Boolean) As DataflowMessageStatus Implements ITargetBlock(Of T).OfferMessage

Parametri

messageHeader
DataflowMessageHeader

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

messageValue
T

Valore del messaggio offerto.

source
ISourceBlock<T>

ISourceBlock<TOutput> che offre il messaggio. Può assumere il 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

DataflowMessageStatus

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 avesse posticipato il messaggio ma source 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.

Implementazioni

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