Это новый вопрос относительно TPL Dataflow ProducerConsumer Pattern, на который уже ответил Свик.
- Мне нужно обрабатывать 4 файла по 2 ГБ параллельно, и мне нужно прочитать буфер содержимого файла по буферу. (Здесь используется шаблон производителя. С Maxdegreeofparallelism = 4 я могу размещать 4 буфера за раз)
- Необходимо обработать буфер и записать в промежуточную таблицу. (Здесь используется потребительский паттерн.)
- Таблицы данных в памяти должны быть преобразованы в соответствии с бизнес-правилами и записаны в нормализованные таблицы.
- Данные в памяти снова используются повторно для еще нескольких проверок окончательной версии данных.
В настоящее время 3-й и 4-й шаги не используют никаких блоков. Это через последовательные вызовы функций от потребителя.
- Это правильный дизайн?
- Есть ли способ конвейеризации 4 блоков один за другим и параллельной обработки всех, кроме подхода производителя-потребителя? Не могли бы вы помочь мне с небольшим примером кода для этого?