Поделиться через


BroadcastBlock<T> Класс

Определение

Предоставляет буфер для хранения максимум одного элемента за раз. Сообщение перезаписывается следующим по мере поступления.

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)

Параметры типа

T

Указывает тип данных, буферизуемых этим блоком потока данных.

Наследование
BroadcastBlock<T>
Реализации

Комментарии

Примечание

Библиотека потоков данных TPL (пространство имен System.Threading.Tasks.Dataflow) не поставляется с .NET. Чтобы установить пространство имен System.Threading.Tasks.Dataflow в Visual Studio, откройте проект, выберите Управление пакетами NuGet в меню Проект и выполните поиск пакета System.Threading.Tasks.Dataflow в Интернете. Вы также можете установить его, выполнив в .NET Core CLI команду dotnet add package System.Threading.Tasks.Dataflow.

BroadcastBlock<T> предоставляет не более одного элемента за раз. Однако, в отличие от WriteOnceBlock<T>, этот элемент будет перезаписан при предоставлении новых элементов в блок. BroadcastBlock<T> гарантирует, что текущий элемент передается всем связанным целевым объектам, прежде чем разрешить перезапись элемента.

Конструкторы

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

Инициализирует BroadcastBlock<T> с указанной функцией клонирования.

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

Инициализирует BroadcastBlock<T> с помощью указанной функции клонирования и DataflowBlockOptions.

Свойства

Completion

Получает объект Task, представляющий асинхронную операцию и завершение блока потока данных.

Методы

Complete()

Сообщает блоку IDataflowBlock, что он больше не должен принимать и создавать никакие сообщения и не должен использовать отложенные сообщения.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
LinkTo(ITargetBlock<T>, DataflowLinkOptions)

Связывает с ISourceBlock<TOutput> указанным ITargetBlock<TInput>объектом .

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую отформатированное имя данного экземпляра IDataflowBlock.

TryReceive(Predicate<T>, T)

Пытается синхронно получить доступный выходной элемент от интерфейса IReceivableSourceBlock<TOutput>.

Явные реализации интерфейса

IDataflowBlock.Fault(Exception)

Вызывает выполнение IDataflowBlock в состоянии Faulted.

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

Пытается синхронно получить все доступные элементы от интерфейса IReceivableSourceBlock<TOutput>.

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

Вызывается связанным объектом ITargetBlock<TInput> для принятия и использования объекта DataflowMessageHeader, ранее предложенного этим объектом ISourceBlock<TOutput>.

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

Вызывается связанным объектом ITargetBlock<TInput> для освобождения объекта DataflowMessageHeader, ранее зарезервированного этим объектом ISourceBlock<TOutput>.

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

Вызывается связанным объектом ITargetBlock<TInput> для резервирования объекта DataflowMessageHeader, ранее предложенного этим объектом ISourceBlock<TOutput>.

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

Предлагает сообщение блоку ITargetBlock<TInput>, предоставляя целевому объекту возможность использовать или отложить его.

Методы расширения

AsObservable<TOutput>(ISourceBlock<TOutput>)

Создает новую абстракцию IObservable<T> для ISourceBlock<TOutput>.

AsObserver<TInput>(ITargetBlock<TInput>)

Создает новую абстракцию IObserver<T> для ITargetBlock<TInput>.

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

Связывает с ISourceBlock<TOutput> указанным ITargetBlock<TInput>объектом .

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

Связывает с ISourceBlock<TOutput> указанным ITargetBlock<TInput> объектом с помощью указанного фильтра.

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

Связывает с ISourceBlock<TOutput> указанным ITargetBlock<TInput> объектом с помощью указанного фильтра.

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

Предоставляет Task<TResult>, которое асинхронным образом выполняет мониторинг источника доступного вывода.

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

Предоставляет Task<TResult>, которое асинхронным образом выполняет мониторинг источника доступного вывода.

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

Отправляет элемент в объект ITargetBlock<TInput>.

Receive<TOutput>(ISourceBlock<TOutput>)

Синхронно получает значение от указанного источника.

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

Синхронно получает значение из указанного источника и предоставляет токен для отмены операции.

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

Синхронно получает значение из указанного источника, отслеживание необязательно точкой времени ожидания.

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

Синхронно получает значение из указанного источника, обеспечивая токен для отмены операции за необязательным и интервал времени ожидания.

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

Создает объект IAsyncEnumerable<T> , который позволяет получать все данные из источника.

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

Асинхронно получает значение от указанного источника.

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

Асинхронно получает значение из указанного источника и предоставляет токен для отмены операции.

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

Асинхронно получает значение из указанного источника, отслеживание необязательно точкой времени ожидания.

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

Асинхронно получает значение из указанного источника, обеспечивая токен для отмены операции за необязательным и интервал времени ожидания.

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

Асинхронно предлагает сообщение в целевому блоку сообщений, позволяет задержки.

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

Асинхронно предлагает сообщение в целевому блоку сообщений, позволяет задержки.

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

Пытается синхронно получить элемент из ISourceBlock<TOutput>.

Применяется к