Описание тега bufferblock

1 ответ

TPL Dataflow Complete Pipeline, когда условие соответствует

Я думал, что это очень простой подход, но я пока не нашел ни одного примера. У меня есть один производитель и один потребитель, и я хочу закончить конвейер, когда было обработано как минимум x объектов. Дополнительно мне нужно знать, какие объекты б…
1 ответ

Метод потребления TPL BufferBlock не вызывается

Я хочу реализовать шаблон потребитель / производитель, используя BufferBlock, который работает непрерывно, как здесь, так и в коде. Я пытался использовать ActionBlock как OP, но если буферный блок заполнен, а новые сообщения находятся в его очереди,…
1 ответ

Удаляются ли элементы из BufferBlock при запуске или завершении ActionBlock?

Допустим, у меня есть BufferBlock с ограниченной емкостью 2, и я связываю его (используя LinkTo()) ActionBlock с MaxDegreeOfParallelism = 2. Теперь я знаю, что сразу же смогу отправить 2 элемента в буфер, и ActionBlock начнет немедленно их обрабатыв…
0 ответов

OpenGL 4.5 - Расположение объектов буфера хранилища шейдеров

Я пробую свои силы в буферных объектах шейдерного хранилища (Buffer Blocks), и есть пара вещей, которые я до конца не понимаю. Я пытаюсь сохранить (упрощенные) данные неопределенного количества источников света. n в них, так что мой шейдер может пер…
1 ответ

Task.WhenAny действует как Task.WhenAll

Я написал небольшую программу для тестирования с использованием BufferBlock (System.Threading.Tasks.Dataflow) для реализации очереди потребитель-производитель с двумя приоритетами. Потребитель всегда должен сначала использовать любые элементы из оче…
1 ответ

Модульный тестовый блок TPL LinkTo TargetBlock

Я пытаюсь создать модульные тесты для TPL BufferBlock и хочу проверить, что генерируется исключение. Однако тест проходит до того, как будет сгенерировано исключение. РЕДАКТИРОВАТЬ Кроме того, это длительный процесс, поэтому я не называю завершенным…
1 ответ

TPL BufferBlock.ReceiveAsync получает один и тот же элемент дважды

У меня есть настройки BufferBlock, как это. _inputQueue = new BufferBlock<WorkItem>(new DataflowBlockOptions { BoundedCapacity = 1, CancellationToken = cancellationToken, EnsureOrdered = true }); Несколько пользователей, вызывающих функцию "Fe…
0 ответов

TPL Dataflow двухфазная фиксация

Я хотел реализовать что-то вроде протокола двухфазной фиксации для потребления сообщений. Для этого я реализовал ITargetBlock себя: public class Worker : ITargetBlock<Message> { // Is connected to remote server // Maintaining connection remove…
15 мар '19 в 14:17
0 ответов

BoundedChannel, BufferBlock или что-то еще?

У меня проблема, когда я выделяю данные, поступающие в систему, поскольку они поступают, они сохраняются на диске, а затем проходят через конвейер, где они преобразуются. Каждый шаг в конвейере может быть связан с процессором или нет, но моя общая п…
27 ноя '19 в 12:06
0 ответов

Использование BufferBlock в качестве наблюдаемого без использования элементов

Мы используем BufferBlocks для создания небольшого инструмента моделирования, в котором мы хотим найти области, выполнение которых занимает много времени. Производители и потребители блоков, по сути, будут спать в течение x времени, а затем отправят…
22 дек '22 в 11:30