首页 > 解决方案 > 在 TPL 数据流中批处理 TransformManyBlock 的输出

问题描述

有没有办法限制TranformManyBlockTPL 数据流库中 a 的输出队列?

我有一个TranformManyBlock将文件作为输入并为MyObject文件中的每一行输出一个实例的方法。问题是文件中可能有无限数量的行,最好从 a 发出批处理TransformManyBlock以在下一个块中进行处理,而不是一次将它们全部加载到内存中。这几乎就像需要一个TransformManyBatchBlock.

像这样的东西:

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

标签: c#multithreadingdataflowthrottlingtpl-dataflow

解决方案


推荐阅读