有没有一种方法可以限制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});