BroadcastBlock<T> Classe

Definição

Fornece um buffer para armazenar no máximo um elemento no momento, substituindo cada mensagem com o próximo conforme ele chega.

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>
Public NotInheritable Class BroadcastBlock(Of T)
Implements IPropagatorBlock(Of T, T), IReceivableSourceBlock(Of T), ISourceBlock(Of T), ITargetBlock(Of T)

Parâmetros de tipo

T

Especifica o tipo de dados armazenados em buffer por esse bloco de fluxo de dados.

Herança
BroadcastBlock<T>
Implementações

Comentários

Note

A Biblioteca de Fluxo de Dados TPL (o namespace System.Threading.Tasks.Dataflow) não é distribuída com .NET. Para instalar o namespace System.Threading.Tasks.Dataflow no Visual Studio, abra seu projeto, escolha Gerenciar Pacotes NuGet no menu do Projeto e pesquise online o pacote System.Threading.Tasks.Dataflow. Como alternativa, instale-o usando a CLI do .NET Core e execute dotnet add package System.Threading.Tasks.Dataflow.

BroadcastBlock<T> expõe no máximo um elemento de cada vez. No entanto, ao contrário WriteOnceBlock<T>desse elemento, esse elemento será substituído à medida que novos elementos forem fornecidos ao bloco. BroadcastBlock<T> garante que o elemento atual seja transmitido para quaisquer destinos vinculados antes de permitir que o elemento seja substituído.

Construtores

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

Inicializa com a BroadcastBlock<T> função de clonagem especificada e DataflowBlockOptions.

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

Inicializa com a BroadcastBlock<T> função de clonagem especificada.

Propriedades

Nome Description
Completion

Obtém um Task que representa a operação assíncrona e a conclusão do bloco de fluxo de dados.

Métodos

Nome Description
Complete()

Sinaliza para IDataflowBlock que ele não deve aceitar nem produzir mais mensagens nem consumir mais mensagens adiadas.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
LinkTo(ITargetBlock<T>, DataflowLinkOptions)

Vincula o ISourceBlock<TOutput> link para o especificado ITargetBlock<TInput>.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o nome formatado dessa IDataflowBlock instância.

TryReceive(Predicate<T>, T)

Tenta receber de forma síncrona um item de saída disponível do IReceivableSourceBlock<TOutput>.

Implantações explícitas de interface

Nome Description
IDataflowBlock.Fault(Exception)

Faz com que a IDataflowBlock conclusão seja concluída em um Faulted estado.

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

Tenta receber síncronamente todos os itens disponíveis do IReceivableSourceBlock<TOutput>.

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

Chamado por um vinculado ITargetBlock<TInput> para aceitar e consumir um DataflowMessageHeader oferecido anteriormente por isso ISourceBlock<TOutput>.

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

Chamado por um vinculado ITargetBlock<TInput> para liberar um anteriormente reservado DataflowMessageHeader por este ISourceBlock<TOutput>.

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

Chamado por um vinculado ITargetBlock<TInput> para reservar um oferecido DataflowMessageHeader anteriormente por isso ISourceBlock<TOutput>.

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

Oferece uma mensagem para o ITargetBlock<TInput>destino, dando ao destino a oportunidade de consumir ou adiar a mensagem.

Métodos de Extensão

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

Cria uma nova IObservable<T> abstração sobre o ISourceBlock<TOutput>.

AsObserver<TInput>(ITargetBlock<TInput>)

Cria uma nova IObserver<T> abstração sobre o ITargetBlock<TInput>.

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

Vincula o ISourceBlock<TOutput> arquivo ao especificado ITargetBlock<TInput> usando o filtro especificado.

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

Vincula o ISourceBlock<TOutput> arquivo ao especificado ITargetBlock<TInput> usando o filtro especificado.

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

Vincula o ISourceBlock<TOutput> link para o especificado ITargetBlock<TInput>.

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

Fornece um Task<TResult> que monitora assíncronamente a origem da saída disponível.

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

Fornece um Task<TResult> que monitora assíncronamente a origem da saída disponível.

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

Posta um item no ITargetBlock<TInput>.

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

Recebe de forma síncrona um valor de uma origem especificada e fornece um token para cancelar a operação.

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

Recebe de forma síncrona um valor de uma origem especificada, fornecendo um token para cancelar a operação e observando um intervalo de tempo limite opcional.

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

Recebe de forma síncrona um valor de uma origem especificada, observando um período de tempo limite opcional.

Receive<TOutput>(ISourceBlock<TOutput>)

Recebe de forma síncrona um valor de uma origem especificada.

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

Recebe de forma assíncrona um valor de uma origem especificada e fornece um token para cancelar a operação.

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

Recebe de forma assíncrona um valor de uma origem especificada, fornecendo um token para cancelar a operação e observando um intervalo de tempo limite opcional.

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

Recebe de forma assíncrona um valor de uma origem especificada, observando um período de tempo limite opcional.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

Recebe de forma assíncrona um valor de uma origem especificada.

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

Oferece de forma assíncrona uma mensagem para o bloco de mensagens de destino, permitindo o adiamento.

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

Oferece de forma assíncrona uma mensagem para o bloco de mensagens de destino, permitindo o adiamento.

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

Tenta receber um item de forma síncrona do ISourceBlock<TOutput>.

Aplica-se a