Sdílet prostřednictvím


BroadcastBlock<T> Třída

Definice

Poskytuje vyrovnávací paměť pro uložení maximálně jednoho prvku v čase a přepíše každou zprávu s další zprávou při jejím přijetí.

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

Určuje typ dat vyrovnávací paměti tímto blokem toku dat.

Dědičnost
BroadcastBlock<T>
Implementuje

Poznámky

Poznámka

Knihovna toků dat TPL (obor názvů) se s .NET nedistribuuje System.Threading.Tasks.Dataflow . Pokud chcete nainstalovat System.Threading.Tasks.Dataflow obor názvů v sadě Visual Studio, otevřete projekt, v nabídce Projekt zvolte Spravovat balíčky NuGet a vyhledejte System.Threading.Tasks.Dataflow balíček online. Pokud ho chcete nainstalovat pomocí rozhraní příkazového řádku .NET Core, spusťte příkaz dotnet add package System.Threading.Tasks.Dataflow.

BroadcastBlock<T> zveřejňuje najednou maximálně jeden prvek. Na rozdíl od WriteOnceBlock<T>se ale tento prvek přepíše, protože do bloku se zadají nové elementy. BroadcastBlock<T> zajišťuje, aby byl aktuální prvek vysílán do všech propojených cílů předtím, než povolíte jeho přepsání.

Konstruktory

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

Inicializuje BroadcastBlock<T> pomocí zadané funkce klonování.

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

Inicializuje BroadcastBlock<T> pomocí zadané funkce klonování a DataflowBlockOptions.

Vlastnosti

Completion

Získá, Task který představuje asynchronní operaci a dokončení toku dat bloku.

Metody

Complete()

Signalizuje, IDataflowBlock že by neměl přijímat, vytvářet žádné další zprávy ani využívat další odložené zprávy.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
LinkTo(ITargetBlock<T>, DataflowLinkOptions)

Prodá ISourceBlock<TOutput> zadaný ITargetBlock<TInput>parametr .

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje formátovaný název této IDataflowBlock instance.

TryReceive(Predicate<T>, T)

Pokusí se synchronně přijmout dostupnou výstupní položku z objektu IReceivableSourceBlock<TOutput>.

Explicitní implementace rozhraní

IDataflowBlock.Fault(Exception)

Způsobí, že IDataflowBlock se dokončí ve Faulted stavu .

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

Pokusí se synchronně přijmout všechny dostupné položky z .IReceivableSourceBlock<TOutput>

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

Volá se propojeným ITargetBlock<TInput> uživatelem k přijetí a využití DataflowMessageHeader dříve nabízeného .ISourceBlock<TOutput>

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

Volána propojeným ITargetBlock<TInput> pro vydání dříve rezervované DataflowMessageHeader tímto ISourceBlock<TOutput>.

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

Volá se propojeným ITargetBlock<TInput> uživatelem, aby si rezervoval dříve nabízený DataflowMessageHeaderISourceBlock<TOutput>.

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

Nabídne zprávu pro ITargetBlock<TInput>, která cílovému cíli umožní zprávu spotřebovat nebo odložit.

Metody rozšíření

AsObservable<TOutput>(ISourceBlock<TOutput>)

Vytvoří novou IObservable<T> abstrakci pro ISourceBlock<TOutput>.

AsObserver<TInput>(ITargetBlock<TInput>)

Vytvoří novou IObserver<T> abstrakci pro ITargetBlock<TInput>.

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

Prodá ISourceBlock<TOutput> zadaný ITargetBlock<TInput>parametr .

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

Odkazuje na ISourceBlock<TOutput> zadaný ITargetBlock<TInput> pomocí zadaného filtru.

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

Odkazuje na ISourceBlock<TOutput> zadaný ITargetBlock<TInput> pomocí zadaného filtru.

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

Poskytuje, Task<TResult> že asynchronně monitoruje zdroj pro dostupný výstup.

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

Poskytuje, Task<TResult> že asynchronně monitoruje zdroj pro dostupný výstup.

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

Publikuje položku do .ITargetBlock<TInput>

Receive<TOutput>(ISourceBlock<TOutput>)

Synchronně přijímá hodnotu ze zadaného zdroje.

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

Synchronně přijímá hodnotu ze zadaného zdroje a poskytuje token pro zrušení operace.

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

Synchronně přijímá hodnotu z zadaného zdroje a sleduje volitelné období časového limitu.

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

Synchronně přijímá hodnotu z zadaného zdroje, poskytuje token pro zrušení operace a sleduje volitelný interval časového limitu.

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

Vytvoří objekt IAsyncEnumerable<T> , který umožňuje příjem všech dat ze zdroje.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

Asynchronně přijímá hodnotu ze zadaného zdroje.

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

Asynchronně přijímá hodnotu ze zadaného zdroje a poskytuje token pro zrušení operace.

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

Asynchronně přijímá hodnotu ze zadaného zdroje a sleduje volitelné období časového limitu.

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

Asynchronně přijímá hodnotu ze zadaného zdroje, poskytuje token pro zrušení operace a sleduje volitelný interval časového limitu.

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

Asynchronně nabídne zprávu cílovému bloku zpráv, což umožňuje odložení.

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

Asynchronně nabídne zprávu cílovému bloku zpráv, což umožňuje odložení.

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

Pokusí se synchronně přijmout položku z objektu ISourceBlock<TOutput>.

Platí pro