Partager via


ISourceBlock<TOutput>.ReserveMessage Méthode

Définition

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

public:
 bool ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target);
public bool ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target);
abstract member ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool
Public Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Out TOutput)) As Boolean

Paramètres

messageHeader
DataflowMessageHeader

DataflowMessageHeader du message en cours de réservation.

target
ITargetBlock<TOutput>

ITargetBlock<TInput> réservant le message.

Retours

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

Exceptions

messageHeader n'est pas valide.

target a la valeur null.

Remarques

Seules les ITargetBlock<TInput> instances liées à cette ISourceBlock<TOutput> instance peuvent utiliser ReserveMessage, et elle doit uniquement être utilisée 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 ne peut pas propager d’autres messages à cette cible ou à d’autres cibles.

ReserveMessage ne doit pas être appelé pendant que 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 à