在TPL数据流中批处理TransformManyBlock的输出

时间:2018-12-20 02:47:32

标签: c# multithreading dataflow throttling tpl-dataflow

有没有一种方法可以限制TPL数据流库中TranformManyBlock的输出队列?

我有一个TranformManyBlock,它以文件为输入,并为文件中的每一行输出一个MyObject实例。问题是文件中可能存在无数行,因此最好从TransformManyBlock发出批处理以在下一个块中进行处理,而不是一次将所有批处理都加载到内存中。几乎就像需要TransformManyBatchBlock

类似这样的东西:

var convertFileToObjects = new TransformManyBatchBlock<FileInfo, MyObject>((Post, file) =>
{
    foreach (var line in file)
    {
        Post(ConvertFileToMyObject(line));
    }
}, new ExecutionDataflowBlockOptions(){OutputBoundedCapacity = 1000});

0 个答案:

没有答案