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>
- Реализации
Комментарии
Note
Библиотека потоков данных TPL (пространство имен System.Threading.Tasks.Dataflow) не распространяется с помощью .NET. Чтобы установить пространство имен System.Threading.Tasks.Dataflow в Visual Studio, откройте проект, выберите Управление пакетами NuGet в меню Project и найдите пакет System.Threading.Tasks.Dataflow в Интернете. Кроме того, чтобы установить его с помощью cli .NET Core, запустите dotnet add package System.Threading.Tasks.Dataflow.
BroadcastBlock<T> предоставляет не более одного элемента одновременно. Однако в отличие от WriteOnceBlock<T>этого элемента будет перезаписан, так как новые элементы предоставляются блоку. BroadcastBlock<T> гарантирует, что текущий элемент передается в любые связанные целевые объекты, прежде чем разрешить элементу перезаписывать.
Конструкторы
| Имя | Описание |
|---|---|
| BroadcastBlock<T>(Func<T,T>, DataflowBlockOptions) |
Инициализирует BroadcastBlock<T> указанную функцию клонирования и DataflowBlockOptions. |
| BroadcastBlock<T>(Func<T,T>) |
Инициализируется BroadcastBlock<T> с помощью указанной функции клонирования. |
Свойства
| Имя | Описание |
|---|---|
| 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> |
Явные реализации интерфейса
Методы расширения
| Имя | Описание |
|---|---|
| AsObservable<TOutput>(ISourceBlock<TOutput>) |
Создает новую IObservable<T> абстракцию поверх ISourceBlock<TOutput>. |
| AsObserver<TInput>(ITargetBlock<TInput>) |
Создает новую IObserver<T> абстракцию поверх ITargetBlock<TInput>. |
| LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, DataflowLinkOptions, Predicate<TOutput>) |
ISourceBlock<TOutput> Связывает указанный ITargetBlock<TInput> с помощью указанного фильтра. |
| LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, Predicate<TOutput>) |
ISourceBlock<TOutput> Связывает указанный ITargetBlock<TInput> с помощью указанного фильтра. |
| LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>) |
Связывает указанный ISourceBlock<TOutput>ITargetBlock<TInput>объект. |
| OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken) |
Предоставляет асинхронный Task<TResult> мониторинг источника для доступных выходных данных. |
| OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>) |
Предоставляет асинхронный Task<TResult> мониторинг источника для доступных выходных данных. |
| Post<TInput>(ITargetBlock<TInput>, TInput) |
Отправляет элемент в элемент ITargetBlock<TInput>. |
| Receive<TOutput>(ISourceBlock<TOutput>, CancellationToken) |
Синхронно получает значение из указанного источника и предоставляет маркер для отмены операции. |
| Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken) |
Синхронно получает значение из указанного источника, предоставляя маркер для отмены операции и наблюдая за необязательным интервалом времени ожидания. |
| Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan) |
Синхронно получает значение из указанного источника, наблюдая за необязательным периодом ожидания. |
| Receive<TOutput>(ISourceBlock<TOutput>) |
Синхронно получает значение из указанного источника. |
| ReceiveAllAsync<TOutput>(IReceivableSourceBlock<TOutput>, CancellationToken) |
Создает объект IAsyncEnumerable<T> , позволяющий получать все данные из источника. |
| ReceiveAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken) |
Асинхронно получает значение из указанного источника и предоставляет маркер для отмены операции. |
| ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken) |
Асинхронно получает значение из указанного источника, предоставляя маркер для отмены операции и наблюдая необязательный интервал времени ожидания. |
| ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan) |
Асинхронно получает значение из указанного источника, наблюдая за необязательным периодом ожидания. |
| ReceiveAsync<TOutput>(ISourceBlock<TOutput>) |
Асинхронно получает значение из указанного источника. |
| SendAsync<TInput>(ITargetBlock<TInput>, TInput, CancellationToken) |
Асинхронно предлагает сообщение целевому блоку сообщений, что позволяет отложить. |
| SendAsync<TInput>(ITargetBlock<TInput>, TInput) |
Асинхронно предлагает сообщение целевому блоку сообщений, что позволяет отложить. |
| TryReceive<TOutput>(IReceivableSourceBlock<TOutput>, TOutput) |
Пытается синхронно получить элемент из элемента ISourceBlock<TOutput>. |