BroadcastBlock<T> Klass

Definition

Tillhandahåller en buffert för att lagra högst ett element i taget och skriver över varje meddelande med nästa när det kommer.

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)

Typparametrar

T

Anger vilken typ av data som buffras av det här dataflödesblocket.

Arv
BroadcastBlock<T>
Implementeringar

Kommentarer

Note

TPL-dataflödesbiblioteket (System.Threading.Tasks.Dataflow-namnområdet) distribueras inte med .NET. Om du vill installera System.Threading.Tasks.Dataflow-namnområdet i Visual Studio öppnar du projektet, väljer Hantera NuGet-paket från menyn Project och söker online efter System.Threading.Tasks.Dataflow-paketet. Alternativt, för att installera det med hjälp av .NET Core CLI, kör dotnet add package System.Threading.Tasks.Dataflow.

BroadcastBlock<T> exponerar högst ett element i taget. Men till skillnad från WriteOnceBlock<T>kommer det elementet att skrivas över eftersom nya element tillhandahålls till blocket. BroadcastBlock<T> ser till att det aktuella elementet sänds till länkade mål innan elementet skrivs över.

Konstruktorer

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

Initierar med den angivna kloningsfunktionen BroadcastBlock<T> och DataflowBlockOptions.

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

Initierar BroadcastBlock<T> med den angivna kloningsfunktionen.

Egenskaper

Name Description
Completion

Hämtar en Task som representerar den asynkrona åtgärden och slutförandet av dataflödesblocket.

Metoder

Name Description
Complete()

Signaler till att den IDataflowBlock inte bör acceptera eller producera fler meddelanden eller förbruka fler uppskjutna meddelanden.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
LinkTo(ITargetBlock<T>, DataflowLinkOptions)

ISourceBlock<TOutput> Länkar till angiven ITargetBlock<TInput>.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det formaterade namnet på den här IDataflowBlock instansen.

TryReceive(Predicate<T>, T)

Försök att synkront ta emot ett tillgängligt utdataobjekt från IReceivableSourceBlock<TOutput>.

Explicita gränssnittsimplementeringar

Name Description
IDataflowBlock.Fault(Exception)

Gör att den IDataflowBlock slutförs i ett Faulted tillstånd.

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

Försöker ta emot alla tillgängliga objekt synkront från IReceivableSourceBlock<TOutput>.

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

Anropas av en länkad ITargetBlock<TInput> för att acceptera och använda en DataflowMessageHeader tidigare erbjuden av denna ISourceBlock<TOutput>.

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

Anropas av en länkad ITargetBlock<TInput> för att släppa en tidigare reserverad DataflowMessageHeader av denna ISourceBlock<TOutput>.

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

Anropas av en länkad ITargetBlock<TInput> till reservera en tidigare erbjuden DataflowMessageHeader av denna ISourceBlock<TOutput>.

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

Erbjuder ett meddelande till ITargetBlock<TInput>, vilket ger målet möjlighet att använda eller skjuta upp meddelandet.

Tilläggsmetoder

Name Description
AsObservable<TOutput>(ISourceBlock<TOutput>)

Skapar en ny IObservable<T> abstraktion över ISourceBlock<TOutput>.

AsObserver<TInput>(ITargetBlock<TInput>)

Skapar en ny IObserver<T> abstraktion över ITargetBlock<TInput>.

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

ISourceBlock<TOutput> Länkar till det angivna ITargetBlock<TInput> med det angivna filtret.

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

ISourceBlock<TOutput> Länkar till det angivna ITargetBlock<TInput> med det angivna filtret.

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

ISourceBlock<TOutput> Länkar till angiven ITargetBlock<TInput>.

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

Tillhandahåller en Task<TResult> som asynkront övervakar källan för tillgängliga utdata.

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

Tillhandahåller en Task<TResult> som asynkront övervakar källan för tillgängliga utdata.

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

Publicerar ett objekt i ITargetBlock<TInput>.

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

Tar synkront emot ett värde från en angiven källa och tillhandahåller en token för att avbryta åtgärden.

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

Tar synkront emot ett värde från en angiven källa, vilket ger en token för att avbryta åtgärden och observerar ett valfritt tidsgränsintervall.

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

Tar synkront emot ett värde från en angiven källa och observerar en valfri tidsgräns.

Receive<TOutput>(ISourceBlock<TOutput>)

Tar synkront emot ett värde från en angiven källa.

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

Skapar en IAsyncEnumerable<T> som gör det möjligt att ta emot alla data från källan.

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

Tar asynkront emot ett värde från en angiven källa och tillhandahåller en token för att avbryta åtgärden.

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

Asynkront tar emot ett värde från en angiven källa, vilket ger en token för att avbryta åtgärden och observera ett valfritt tidsgränsintervall.

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

Tar asynkront emot ett värde från en angiven källa och observerar en valfri tidsgräns.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

Tar asynkront emot ett värde från en angiven källa.

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

Asynkront erbjuder ett meddelande till målmeddelandeblocket, vilket möjliggör senareläggning.

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

Asynkront erbjuder ett meddelande till målmeddelandeblocket, vilket möjliggör senareläggning.

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

Försöker ta emot ett objekt synkront från ISourceBlock<TOutput>.

Gäller för