Udostępnij za pośrednictwem


BroadcastBlock<T> Klasa

Definicja

Zapewnia bufor do przechowywania co najwyżej jednego elementu w czasie, zastępowania każdego komunikatu przy następnym nadejściu.

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)

Parametry typu

T

Określa typ danych buforowanych przez ten blok przepływu danych.

Dziedziczenie
BroadcastBlock<T>
Implementuje

Uwagi

Uwaga

Biblioteka przepływu danych TPL ( System.Threading.Tasks.Dataflow przestrzeń nazw) nie jest dystrybuowana za pomocą platformy .NET. Aby zainstalować System.Threading.Tasks.Dataflow przestrzeń nazw w programie Visual Studio, otwórz projekt, wybierz pozycję Zarządzaj pakietami NuGet z menu Project i wyszukaj pakiet w trybie online System.Threading.Tasks.Dataflow . Alternatywnie, aby zainstalować go przy użyciu interfejsu wiersza polecenia platformy .NET Core, uruchom polecenie dotnet add package System.Threading.Tasks.Dataflow.

BroadcastBlock<T> uwidacznia co najwyżej jeden element naraz. Jednak w przeciwieństwie do WriteOnceBlock<T>elementu , ten element zostanie zastąpiony jako nowe elementy są dostarczane do bloku. BroadcastBlock<T> zapewnia, że bieżący element jest emitowany do wszystkich połączonych obiektów docelowych przed zezwoleniem na zastąpienie elementu.

Konstruktory

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

Inicjuje BroadcastBlock<T> element z określoną funkcją klonowania.

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

Inicjuje BroadcastBlock<T> element za pomocą określonej funkcji klonowania i DataflowBlockOptions.

Właściwości

Completion

Pobiera element reprezentujący operację Task asynchroniczną i ukończenie bloku przepływu danych.

Metody

Complete()

Sygnały do IDataflowBlock tego, że nie powinny akceptować ani tworzyć więcej komunikatów, ani nie zużywać żadnych bardziej odroczonych komunikatów.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
LinkTo(ITargetBlock<T>, DataflowLinkOptions)

Łączy element ISourceBlock<TOutput> z określonym ITargetBlock<TInput>elementem .

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący sformatowaną nazwę tego IDataflowBlock wystąpienia.

TryReceive(Predicate<T>, T)

Próbuje synchronicznie odebrać dostępny element wyjściowy z elementu IReceivableSourceBlock<TOutput>.

Jawne implementacje interfejsu

IDataflowBlock.Fault(Exception)

IDataflowBlock Powoduje ukończenie Faulted operacji w stanie.

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

Próbuje synchronicznie odebrać wszystkie dostępne elementy z elementu IReceivableSourceBlock<TOutput>.

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

Wywołana przez link ITargetBlock<TInput> do akceptowania i korzystania z wcześniej oferowanej przez tę ISourceBlock<TOutput>usługę DataflowMessageHeader .

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

Wywoływana przez połączony ITargetBlock<TInput> element z wydaniem wcześniej zastrzeżonym DataflowMessageHeader przez ten ISourceBlock<TOutput>element .

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

Wywoływana przez połączonego ITargetBlock<TInput> z rezerwą wcześniej oferowaną DataflowMessageHeader przez tę ISourceBlock<TOutput>usługę .

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

Oferuje komunikat do ITargetBlock<TInput>obiektu , dając docelową możliwość korzystania lub odroczenia wiadomości.

Metody rozszerzania

AsObservable<TOutput>(ISourceBlock<TOutput>)

Tworzy nową IObservable<T> abstrakcję nad elementem ISourceBlock<TOutput>.

AsObserver<TInput>(ITargetBlock<TInput>)

Tworzy nową IObserver<T> abstrakcję nad elementem ITargetBlock<TInput>.

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

Łączy element ISourceBlock<TOutput> z określonym ITargetBlock<TInput>elementem .

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

Łączy element ISourceBlock<TOutput> z określonym ITargetBlock<TInput> filtrem przy użyciu określonego filtru.

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

Łączy element ISourceBlock<TOutput> z określonym ITargetBlock<TInput> filtrem przy użyciu określonego filtru.

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

Task<TResult> Zapewnia, że asynchronicznie monitoruje źródło dostępnych danych wyjściowych.

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

Task<TResult> Zapewnia, że asynchronicznie monitoruje źródło dostępnych danych wyjściowych.

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

Publikuje element w elemencie ITargetBlock<TInput>.

Receive<TOutput>(ISourceBlock<TOutput>)

Synchronicznie odbiera wartość z określonego źródła.

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

Synchronicznie odbiera wartość z określonego źródła i udostępnia token do anulowania operacji.

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

Synchronicznie odbiera wartość z określonego źródła, obserwując opcjonalny okres przekroczenia limitu czasu.

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

Synchronicznie odbiera wartość z określonego źródła, zapewniając token umożliwiający anulowanie operacji i obserwowanie opcjonalnego interwału przekroczenia limitu czasu.

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

Tworzy obiekt IAsyncEnumerable<T> , który umożliwia odbieranie wszystkich danych ze źródła.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

Asynchronicznie odbiera wartość z określonego źródła.

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

Asynchronicznie odbiera wartość z określonego źródła i udostępnia token do anulowania operacji.

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

Asynchronicznie odbiera wartość z określonego źródła, obserwując opcjonalny okres przekroczenia limitu czasu.

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

Asynchronicznie odbiera wartość z określonego źródła, zapewniając token umożliwiający anulowanie operacji i obserwowanie opcjonalnego interwału przekroczenia limitu czasu.

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

Asynchronicznie oferuje komunikat do docelowego bloku komunikatów, co pozwala na odroczenie.

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

Asynchronicznie oferuje komunikat do docelowego bloku komunikatów, co pozwala na odroczenie.

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

Próbuje synchronicznie odebrać element z elementu ISourceBlock<TOutput>.

Dotyczy