Вопросы по теме 'tpl-dataflow'

Это работа для TPL Dataflow?
Я использую довольно типичную модель производитель / потребитель для разных задач. Задача 1: считывает пакеты byte [] из двоичных файлов и запускает новую задачу для каждой коллекции массивов байтов. (операция запрограммирована в целях управления...
2570 просмотров

Самый оптимальный дизайн потока данных TPL?
Мне нравится спрашивать, как лучше всего спроектировать наиболее оптимальную архитектуру с использованием TPL Dataflow. Я еще не написал кода, поэтому я не могу опубликовать образец кода. Я тоже не ищу код (если не вызван добровольно), но помощь в...
1971 просмотров

Настройка ActionBlock‹T›
Я хочу реализовать приоритет ActionBlock<T> . Чтобы я мог условно дать приоритет некоторым TInput элементам, используя Predicate<T> . Я прочитал Дополнительные примеры параллельных расширений и Руководство по реализации...
2717 просмотров

Для чего нужен этот конструктор: ActionBlock‹TInput› Constructor (Func‹TInput, Task›)
Ранее я использовал ActionBlock через другой конструктор: ActionBlock<TInput> Constructor (Action<TInput>) Но для того, что в заголовке, с возвращаемым типом Task, я не уверен, что ActionBlock делает с возвращенным Task. Я...
495 просмотров

Дизайн потока данных TPL для асинхронной конвейерной обработки 4 блоков
Это новый вопрос относительно TPL Dataflow ProducerConsumer Pattern , на который уже ответил Свик. Мне нужно обрабатывать 4 файла по 2 ГБ параллельно, и мне нужно прочитать буфер содержимого файла по буферу. (Здесь используется шаблон...
679 просмотров

Поток данных задачи, можно ли изменить блок данных из состояния завершения?
Я хотел бы знать, можно ли изменить состояние завершения блоков данных? Например, я пометил блок данных var block = new BufferBlock<int>(); в комплекте с block.Complete() . Блок связан с другими блоками данных. Я хотел бы знать, могу ли...
860 просмотров
schedule 19.02.2024

c # Поток данных или задачи, потребляющие сообщения для параллельной обработки
Если я хочу получать сообщения из внешней очереди, скажем, в Redis или подобном. Не лучше ли, чтобы один поток постоянно проверял очередь и отправлял сообщения в соответствующий BroadcastBlock для обработки (например) if (message.type ==...
469 просмотров

Поток данных TPL и BatchJoinBlock с разными размерами пакетов
Допустим, у меня есть данные, поступающие из двух разных источников на двух разных частотах, и я должен объединить их и обработать вместе. Частота на канале A составляет 100 Гц (100 целых чисел в секунду), а частота на канале B - 1 Гц (1 целое число...
445 просмотров

TPL Dataflow: дизайн для параллелизма при сохранении порядка
Я никогда раньше не работал с TPL, поэтому мне было интересно, можно ли это сделать с ним: мое приложение создает файл анимации изображения gif из множества кадров. Я начинаю со списка Bitmap, который представляет кадры файла gif, и мне нужно сделать...
1369 просмотров

Параллельный парсинг в .NET
Компания, в которой я работаю, управляет несколькими сотнями очень динамичных веб-сайтов. Было принято решение построить поисковую систему, а мне поручили написать парсер. Некоторые из сайтов работают на старом оборудовании и не выдерживают больших...
786 просмотров

Поток данных TPL выбирает блок для размещения в нем элемента
Пожалуйста, взгляните на мою схему сети TPL Dataflow ниже. Есть список URL-адресов, несколько блоков загрузки и блок разбора. Блоки загрузки загружают HTML-страницы с разных прокси-серверов, и все они связаны с блоком Parse, где происходит работа,...
483 просмотров

Microsoft TPL Dataflow — синхронная обработка коррелирующих запросов
Заранее извиняюсь за название, но это лучшее, что я мог придумать, чтобы описать действие. Требуется обработка запросов шины сообщений. Входящие запросы могут быть связаны с идентификатором, который коррелирует или группирует эти запросы. Я хочу,...
1441 просмотров

Как я могу разветвить логику в потоке данных TPL?
Я новичок в потоке данных TPL, поэтому простите меня, если это простой вопрос. У меня есть блок входного буфера, который принимает базовый класс. Как я могу перейти оттуда к блоку на основе производного типа? Так, например: var inputBlock =...
939 просмотров

BufferBlock и ActionBlock с BoundedCapacity не используют максимальный DOP
У меня есть этот код: var data = new BufferBlock<int>(new DataflowBlockOptions { BoundedCapacity = 1 }); var action = new ActionBlock<int>(async id => { Console.WriteLine("[{0:T}] #{1}: Start", DateTime.Now, id); await...
3896 просмотров

TransformBlock никогда не завершается
Пытаюсь осознать «доработку» в блоках TPL Dataflow. В частности, TransformBlock , похоже, никогда не завершается. Почему? Пример программы Мой код вычисляет квадрат всех целых чисел от 1 до 1000. Я использовал для этого BufferBlock и...
3898 просмотров

Утилизация данных TPL Dataflow
Я работаю над инструментом обработки звука, который хотел бы создать с использованием TPL Dataflow. Сам поток данных будет состоять из аудиосэмплов, передаваемых между блоками обработки звука. Эти образцы обычно имеют размер несколько килобайт (_1 _...
651 просмотров

Доступ к трем спискам с тремя потоками, печать элементов по порядку
Вот вопрос: Скажем, есть 3 списка l1, l2 и l3 одинаковой длины. Три потока обращаются к трем спискам. Произнесите T1 -> l1, T2 -> l2 и T3 -> l3. Он должен печатать в порядке, скажем, первый элемент 1-го списка, затем первый элемент 2-го...
320 просмотров
schedule 16.07.2023

Как я могу убедиться, что блок потока данных создает потоки только по запросу?
Я написал небольшой конвейер, используя API потока данных TPL, который получает данные из нескольких потоков и выполняет их обработку. Настройка 1 Когда я настраиваю его для использования MaxDegreeOfParallelism = Environment.ProcessorCount (в...
4431 просмотров

Как остановить обработку конвейера на неисправном блоке?
Как я могу остановить обработку блоков DataFlow, если один из блоков решил, что произошла ошибка, препятствующая запуску следующих блоков. Я думал, что блок может генерировать исключение, но не уверен, как правильно остановить дальнейшую обработку...
921 просмотров

Асинхронный производитель / потребитель с регулируемой продолжительностью и пакетным потреблением
Я пытаюсь создать службу, которая предоставляет очередь для многих асинхронных клиентов, чтобы делать запросы и ждать ответа. Мне нужно регулировать обработку очереди с помощью X запросов на продолжительность Y. Например: 50 веб-запросов в секунду....
1041 просмотров