次の方法で共有


BufferBlock<T>.ISourceBlock<T>.ReserveMessage メソッド

定義

この ITargetBlock<TInput> によって前に提供された DataflowMessageHeader を予約するために、リンクされた ISourceBlock<TOutput> によって呼び出されます。

 virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<T>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<T> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<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

パラメーター

messageHeader
DataflowMessageHeader

予約するメッセージの DataflowMessageHeader

target
ITargetBlock<T>

メッセージを予約している ITargetBlock<TInput>

戻り値

メッセージが正常に予約された場合は true、それ以外の場合は false

実装

例外

messageHeader が有効ではありません。

targetnull です。

注釈

このISourceBlock<TOutput>インスタンスにリンクされているインスタンスのみが ITargetBlock<TInput> を使用ReserveMessageでき、このソースによって以前に提供されたインスタンスをターゲットに予約DataflowMessageHeaderするためにのみ使用する必要があります。

が返された場合trueITargetBlock<TInput> は、その後、このメッセージに対して または ReleaseReservationConsumeMessage呼び出す必要があります。 これを行わないと、ソースがこれ以上のメッセージをこのターゲットまたは他のターゲットに伝達できなくなる可能性があります。

ReserveMessage ターゲットが内部ロックを保持している間は、 を呼び出してはなりません。 これにより、データフロー ネットワークのデッドロックを回避するために必要なロック階層に違反します。

適用対象