Partager via


BatchBlock<T>.ISourceBlock<T[]>.ReserveMessage Méthode

Définition

Appelé par un ITargetBlock<TInput> lié pour réserver un DataflowMessageHeader précédemment proposé par ce ISourceBlock<TOutput>.

 virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<T[]>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<cli::array <T> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<cli::array <T> ^>::ReserveMessage;
bool ISourceBlock<T[]>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<T[]> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<T[]>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T[]> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<T[]>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T[]> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of T())) As Boolean Implements ISourceBlock(Of T()).ReserveMessage

Paramètres

messageHeader
DataflowMessageHeader

DataflowMessageHeader du message en cours de réservation.

target
ITargetBlock<T[]>

ITargetBlock<TInput> réservant le message.

Retours

true si le message a été réservé avec succès ; sinon false.

Implémente

Exceptions

messageHeader n'est pas valide.

target a la valeur null.

Remarques

Seules ITargetBlock<TInput> les instances liées à cette ISourceBlock<TOutput> instance peuvent utiliser ReserveMessage, et il doit uniquement être utilisé pour réserver DataflowMessageHeader des instances précédemment offertes par cette source à la cible.

Si true est retourné, le ITargetBlock<TInput> doit ensuite appeler ConsumeMessage ou ReleaseReservation pour ce message. Si vous ne le faites pas, la source peut ne pas pouvoir propager d’autres messages à cette cible ou à d’autres cibles.

ReserveMessage ne doit pas être appelé lorsque la cible contient des verrous internes. Cela violera la hiérarchie de verrous nécessaire pour éviter les interblocages dans un réseau de flux de données.

S’applique à