ISourceBlock<TOutput>.ReserveMessage 方法

定義

由連結ITargetBlock<TInput>者致電預訂,之前由此DataflowMessageHeader服務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

參數

messageHeader
DataflowMessageHeader

DataflowMessageHeader訊息被保留。

target
ITargetBlock<TOutput>

保留 ITargetBlock<TInput> 訊息。

傳回

true若訊息成功預訂;否則,。 false

例外狀況

這個 messageHeader 並不成立。

targetnull

備註

只有 ITargetBlock<TInput> 與此 ISourceBlock<TOutput> 實例連結的實例才能使用 ReserveMessage,且必須僅用於保留 DataflowMessageHeader 此來源先前提供給目標的實例。

如果 true 回傳 ,則 ITargetBlock<TInput> 必須隨後呼叫 ConsumeMessageReleaseReservation 來取得此訊息。 若未如此,來源可能無法向此或其他目標傳遞進一步訊息。

ReserveMessage 目標持有任何內部鎖時不得呼叫。 這樣做會違反避免資料流網路死鎖所需的鎖階層結構。

適用於