Есть ли способ ограничить очередь вывода TranformManyBlock
в библиотеке потоков данных TPL?
У меня есть TranformManyBlock
, который принимает файл в качестве входных данных и выводит экземпляр MyObject
для каждой строки в файле.Проблема в том, что в файле может быть неограниченное количество строк, и было бы предпочтительнее отправлять пакеты из TransformManyBlock
для обработки в следующем блоке, а не загружать их все в память сразу.Это почти как должно быть TransformManyBatchBlock
.
Примерно так:
var convertFileToObjects = new TransformManyBatchBlock<FileInfo, MyObject>((Post, file) =>
{
foreach (var line in file)
{
Post(ConvertFileToMyObject(line));
}
}, new ExecutionDataflowBlockOptions(){OutputBoundedCapacity = 1000});