1

デフォルトのコンストラクタを使用してTPL BufferBlockを構築する場合、DataFlowBlockOptionsは無制限ですか?つまり、BufferBlockBoundedCapacityは何ですか?TPLのデフォルトのコンストラクタBufferBlock:DataFlowBlockOptionsの値

As stated in this SO answerの場合、建設後にBufferBlockの値を照会も変更もできません。

+2

はいデフォルトは「無制限」です。すべてのデフォルト値[ここ]を見ることができます(https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Dataflow/src/Base/DataflowBlockOptions.cs) – JSteward

答えて

0

これを見つけるには2通りの方法があります。docsを読んだり、自分でBufferBlockを作成してください。

Introduction to TPL Dataflowから:

有界容量の仕様をサポートSystem.Threading.Tasks.Dataflow.dllに含まれたデータフロー・ブロックの大多数。

これは、ブロックが一度に格納し、飛行しているアイテムの数の制限です。デフォルトでは、この値はDataflowBlockOptions.Unbounded-1)に初期化されます。つまり、制限はありません。

ただし、開発者は明示的に上限を指定することがあります。追加のメッセージが提供されたときにブロックが既に容量に達している場合、そのメッセージは延期されます。 MSDNから

また、:

DataflowBlockOptionsが可変であり、その特性を使用して構成することができます。

データフローブロックは、その構成時にオプションの状態を取得します。
この後の変更されたDataflowBlockOptionsインスタンスは、データフローブロックの動作に影響を与えてはなりません。あなたは常に、デバッガからプライベートメンバー閲覧でき

from debugger

をまた取得/反射によってそれらを設定しようとするかもしれませんが、これは本当にお勧めではありません。

関連する問題