ISourceBlock<TOutput>.ReserveMessage Méthode

Définition

Appelé par un lié ITargetBlock<TInput> à réserver un précédemment offert DataflowMessageHeader 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

Message DataflowMessageHeader réservé.

target
ITargetBlock<TOutput>

ITargetBlock<TInput> Réservation du message.

Retours

true si le message a été correctement réservé ; sinon, false.

Exceptions

L’objet 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 elles doivent uniquement être utilisées pour réserver DataflowMessageHeader des instances précédemment proposées par cette source à la cible.

Si true elle est retournée, l’appel ITargetBlock<TInput> doit ensuite être appelé ConsumeMessage ou ReleaseReservation pour ce message. Si vous ne le faites pas, la source ne peut pas propager d’autres messages à cette ou à d’autres cibles.

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

S’applique à