1

Wenn Sie den Standardkonstruktor verwenden, um eine TPL zu konstruieren, sind die DataFlowBlockOptions unbeschränkt? Mit anderen Worten, was ist die BoundedCapacity der BufferBlock?TPL Standardkonstruktor BufferBlock: Wert von DataFlowBlockOptions

As stated in this SO answer, es ist nicht möglich, die Werte der nach der Konstruktion abzufragen oder zu ändern.

+2

Ja, der Standardwert ist 'Unbounded'. Sie können alle Standardeinstellungen [hier] sehen (https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Dataflow/src/Base/DataflowBlockOptions.cs) – JSteward

Antwort

0

Sie haben zwei Möglichkeiten, das herauszufinden: lesen Sie die docs oder erstellen Sie selbst.

Von Introduction to TPL Dataflow:

Die Mehrheit der Datenfluß Blöcke enthalten in System.Threading.Tasks.Dataflow.dll Unterstützung der Spezifikation einer beschränkten Kapazität.

Dies ist die Grenze für die Anzahl der Elemente, die der Block speichern und gleichzeitig im Flug haben kann. Standardmäßig wird dieser Wert auf DataflowBlockOptions.Unbounded (-1) initialisiert, was bedeutet, dass es keine Begrenzung gibt.

Ein Entwickler kann jedoch explizit eine obere Grenze angeben. Wenn ein Block bereits in seiner Kapazität ist, wenn ihm eine zusätzliche Nachricht angeboten wird, wird diese Nachricht verschoben.

Auch aus MSDN:

DataflowBlockOptions wandelbar ist und durch seine Eigenschaften konfiguriert werden.

Datenflussblöcke erfassen den Zustand der Optionen bei ihrer Konstruktion.
Nachfolgende Änderungen an der bereitgestellten InstanzDataflowBlockOptionssollten das Verhalten eines Datenflussblocks nicht beeinflussen.

Sie können jederzeit sehen private Mitglieder von Debugger:

from debugger

Sie können auch sie versuchen, durch Reflexion zu erhalten/set, aber das ist wirklich nicht zu empfehlen.