DataflowBlockOptions.EnsureOrdered プロパティ


順次処理をブロックのメッセージの処理に強制するかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether ordered processing should be enforced on a block's handling of messages.

 property bool EnsureOrdered { bool get(); void set(bool value); };
public bool EnsureOrdered { get; set; }
member this.EnsureOrdered : bool with get, set
Public Property EnsureOrdered As Boolean



true 順次処理を適用する場合は、それ以外の場合は falsetrue if ordered processing should be enforced; otherwise, false. 既定値は true です。The default value is true.


既定では、データフローブロックによってメッセージの処理に順序が適用されます。By default, dataflow blocks enforce ordering on the processing of messages. これは、などのブロックが、 System.Threading.Tasks.Dataflow.TransformBlock<TInput,TOutput> ブロックによって並列処理が使用されている場合でも、メッセージが入力された順序で出力されることを保証することを意味します。メッセージの処理は、後続のメッセージ n + 1 の処理後に終了します (ブロックは結果を並べ替えて、その結果をコンシューマーが使用できるようにThis means that a block like System.Threading.Tasks.Dataflow.TransformBlock<TInput,TOutput> will ensure that messages are output in the same order they were input, even if parallelism is employed by the block, and the processing of a message N finishes after the processing of a subsequent message N+1 (the block will reorder the results to maintain the input ordering prior to making those results available to a consumer). ただし、一部のブロックではこれを緩和できます。Some blocks may allow this to be relaxed, however. EnsureOrderedを false に設定すると、ブロックが許可される場合に、この順序を緩和できることを示します。Setting EnsureOrdered to false tells a block that it may relax this ordering if it's able to do so. これは、処理された結果をすぐに使用できるようにすることが、入力から出力への順序を維持するよりも重要である場合に役立ちます。This can be beneficial if making a processed result immediately available is more important than maintaining the input-to-output ordering.