Freigeben über


BroadcastBlock<T> Klasse

Definition

Stellt einen Puffer für das Speichern von höchstens einem Element gleichzeitig bereit und überschreibt jede Meldung mit dem Text, während sie eingeht.

generic <typename T>
public ref class BroadcastBlock sealed : System::Threading::Tasks::Dataflow::IPropagatorBlock<T, T>, System::Threading::Tasks::Dataflow::IReceivableSourceBlock<T>, System::Threading::Tasks::Dataflow::ISourceBlock<T>, System::Threading::Tasks::Dataflow::ITargetBlock<T>
public sealed class BroadcastBlock<T> : System.Threading.Tasks.Dataflow.IPropagatorBlock<T,T>, System.Threading.Tasks.Dataflow.IReceivableSourceBlock<T>, System.Threading.Tasks.Dataflow.ISourceBlock<T>, System.Threading.Tasks.Dataflow.ITargetBlock<T>
type BroadcastBlock<'T> = class
    interface IPropagatorBlock<'T, 'T>
    interface ITargetBlock<'T>
    interface IDataflowBlock
    interface ISourceBlock<'T>
    interface IReceivableSourceBlock<'T>
type BroadcastBlock<'T> = class
    interface IDataflowBlock
    interface IPropagatorBlock<'T, 'T>
    interface ISourceBlock<'T>
    interface ITargetBlock<'T>
    interface IReceivableSourceBlock<'T>
Public NotInheritable Class BroadcastBlock(Of T)
Implements IPropagatorBlock(Of T, T), IReceivableSourceBlock(Of T), ISourceBlock(Of T), ITargetBlock(Of T)

Typparameter

T

Gibt den Typ der Daten, die von diesen Datenflussblock gepuffert werden.

Vererbung
BroadcastBlock<T>
Implementiert

Hinweise

Hinweis

Die TPL-Datenflussbibliothek (System.Threading.Tasks.Dataflow-Namespace) wird nicht mit .NET ausgeliefert. Öffnen Sie zum Installieren des System.Threading.Tasks.Dataflow-Namespace in Visual Studio Ihr Projekt, wählen Sie im Menü Projekt die Option NuGet-Pakete verwalten aus, und suchen Sie online nach dem System.Threading.Tasks.Dataflow-Paket. Alternativ können Sie es mithilfe der .NET Core-CLI installieren und dazu dotnet add package System.Threading.Tasks.Dataflow ausführen.

BroadcastBlock<T> macht höchstens ein Element gleichzeitig verfügbar. Im Gegensatz wird WriteOnceBlock<T>dieses Element jedoch überschrieben, wenn dem Block neue Elemente bereitgestellt werden. BroadcastBlock<T> stellt sicher, dass das aktuelle Element an alle verknüpften Ziele übertragen wird, bevor das Element überschrieben werden kann.

Konstruktoren

BroadcastBlock<T>(Func<T,T>)

Initialisiert das BroadcastBlock<T> mit der angegebenen Klonfunktion.

BroadcastBlock<T>(Func<T,T>, DataflowBlockOptions)

Initialisiert den BroadcastBlock<T> mit der angegebenen Klonfunktion und DataflowBlockOptions.

Eigenschaften

Completion

Ruft ein Task ab, das den asynchronen Vorgang und die Beendigung des Datenflussblocks darstellt.

Methoden

Complete()

Signalisiert IDataflowBlock, dass es keine Nachrichten mehr akzeptieren und keine produzieren und keine weiteren zurückgestellten Nachrichten verarbeiten soll.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
LinkTo(ITargetBlock<T>, DataflowLinkOptions)

Verknüpft den mit ISourceBlock<TOutput> dem angegebenen ITargetBlock<TInput>.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die den formatierten Namen dieser IDataflowBlock-Instanz darstellt.

TryReceive(Predicate<T>, T)

Versucht, ein verfügbares Output-Element vonIReceivableSourceBlock<TOutput> synchron zu empfangen.

Explizite Schnittstellenimplementierungen

IDataflowBlock.Fault(Exception)

Bewirkt, IDataflowBlock in einem Faulted Zustand auszuführen.

IReceivableSourceBlock<T>.TryReceiveAll(IList<T>)

Versucht, alle verfügbaren Elemente aus IReceivableSourceBlock<TOutput> synchron zu empfangen.

ISourceBlock<T>.ConsumeMessage(DataflowMessageHeader, ITargetBlock<T>, Boolean)

Wird von verknüpften ITargetBlock<TInput> aufgerufen, um einen DataflowMessageHeader zu akzeptieren und verarbeiten, die zuvor durch dieses ISourceBlock<TOutput> angeboten werden.

ISourceBlock<T>.ReleaseReservation(DataflowMessageHeader, ITargetBlock<T>)

Wird von einem verknüpften ITargetBlock<TInput>, um einen DataflowMessageHeader, der von diesem ISourceBlock<TOutput> zuvor reserviert wurde, freizugeben.

ISourceBlock<T>.ReserveMessage(DataflowMessageHeader, ITargetBlock<T>)

Wird von einem verknüpften ITargetBlock<TInput>, um einen DataflowMessageHeader, der von diesem ISourceBlock<TOutput> zuvor angeboten wurde, zu reservieren.

ITargetBlock<T>.OfferMessage(DataflowMessageHeader, T, ISourceBlock<T>, Boolean)

Bietet eine Meldung für ITargetBlock<TInput> an und gibt dem Ziel die Möglichkeit, die Nachricht zu verarbeiten oder zurückzustellen.

Erweiterungsmethoden

AsObservable<TOutput>(ISourceBlock<TOutput>)

Erstellt eine neue IObservable<T> Abstraktion über ISourceBlock<TOutput>.

AsObserver<TInput>(ITargetBlock<TInput>)

Erstellt eine neue IObserver<T> Abstraktion über ITargetBlock<TInput>.

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>)

Verknüpft den mit ISourceBlock<TOutput> dem angegebenen ITargetBlock<TInput>.

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, Predicate<TOutput>)

Verknüpft den ISourceBlock<TOutput> mit dem angegebenen Filter mit dem angegebenen ITargetBlock<TInput> .

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, DataflowLinkOptions, Predicate<TOutput>)

Verknüpft den ISourceBlock<TOutput> mit dem angegebenen Filter mit dem angegebenen ITargetBlock<TInput> .

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

Stellt eine Task<TResult> bereit, die asynchron die Quelle für verfügbare Ausgabe überwacht.

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken)

Stellt eine Task<TResult> bereit, die asynchron die Quelle für verfügbare Ausgabe überwacht.

Post<TInput>(ITargetBlock<TInput>, TInput)

Fügt dem ITargetBlock<TInput> ein Element hinzu.

Receive<TOutput>(ISourceBlock<TOutput>)

Empfängt synchron einen Wert aus der angegebenen Quelle.

Receive<TOutput>(ISourceBlock<TOutput>, CancellationToken)

Erhält synchron einen Wert aus einer angegebenen Quelle und stellt ein Token bereit, um die Operation abzubrechen.

Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan)

Empfängt synchron einen Wert aus einer angegebenen Quelle und beachtet ein optionales Timeout.

Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken)

Empfängt synchron einen Wert aus einer angegebenen Quelle, stellt ein Token bereit, um den Vorgang abzubrechen und beachtet ein optionales Timeoutintervall.

ReceiveAllAsync<TOutput>(IReceivableSourceBlock<TOutput>, CancellationToken)

Erstellt eine IAsyncEnumerable<T> , die den Empfang aller Daten aus der Quelle ermöglicht.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

Empfängt asynchron einen Wert aus der angegebenen Quelle.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken)

Erhält asynchron einen Wert aus einer angegebenen Quelle und stellt ein Token bereit, um die Operation abzubrechen.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan)

Empfängt asynchron einen Wert aus einer angegebenen Quelle und beachtet ein optionales Timeout.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken)

Empfängt asynchron einen Wert aus einer angegebenen Quelle, stellt ein Token bereit, um den Vorgang abzubrechen und beachtet ein optionales Timeoutintervall.

SendAsync<TInput>(ITargetBlock<TInput>, TInput)

Gewährt dem Zielmeldungsblock asynchron eine Meldung an und ermöglicht einen Aufschub.

SendAsync<TInput>(ITargetBlock<TInput>, TInput, CancellationToken)

Gewährt dem Zielmeldungsblock asynchron eine Meldung an und ermöglicht einen Aufschub.

TryReceive<TOutput>(IReceivableSourceBlock<TOutput>, TOutput)

Versucht, ein Element von ISourceBlock<TOutput> synchron zu empfangen.

Gilt für: