JoinBlock<T1,T2,T3>.ISourceBlock<Tuple<T1,T2,T3>>.ReserveMessage 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
保留將 DataflowMessageHeader 所識別的訊息擁有權,從此 ISourceBlock<TOutput> 傳遞到 ITargetBlock<TInput> 的權利。
virtual bool System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2,T3>>.ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<Tuple<T1, T2, T3> ^> ^ target) = System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<T1, T2, T3> ^>::ReserveMessage;
bool ISourceBlock<Tuple<T1,T2,T3>>.ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<Tuple<T1,T2,T3>> target);
abstract member System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2,T3>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2 * 'T3> -> bool
override this.System.Threading.Tasks.Dataflow.ISourceBlock<System.Tuple<T1,T2,T3>>.ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'T1 * 'T2 * 'T3> -> bool
Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Tuple(Of T1, T2, T3))) As Boolean Implements ISourceBlock(Of Tuple(Of T1, T2, T3)).ReserveMessage
參數
- messageHeader
- DataflowMessageHeader
要保留的訊息的 DataflowMessageHeader。
- target
- ITargetBlock<Tuple<T1,T2,T3>>
要保留訊息的 ITargetBlock<TInput>。
傳回
如果成功保留訊息,則為 true
,否則為false
。
實作
例外狀況
messageHeader
無效。
target
為 null
(在 Visual Basic 中為 Nothing)。
備註
要 ITargetBlock<TInput> 保留訊息的 ,不需要從這個 ISourceBlock<TOutput> 實例連結。 此外,這個 ISourceBlock<TOutput> 實例可能從未將訊息直接 ITargetBlock<TInput> 提供給 。
如果 true
傳回 ,您後續必須針對具有相同 和 ITargetBlock<TInput> 的 DataflowMessageHeader 這個訊息呼叫 ConsumeMessage 或 ReleaseReservation 。 如果沒有,來源可能無法將任何進一步的訊息傳播至任何目標。
當目標持有任何內部鎖定時,請勿呼叫 ReserveMessage 。 這樣做會違反避免資料流程網路中死結所需的鎖定階層。