【发布时间】:2014-12-29 18:18:32
【问题描述】:
我有一个看起来像这样的过程。
- 从文件夹中获取一组 CSV 文件
- 读取 CSV 文件,并将内容存储在数据库中
- 从数据库中读取数据并执行更多处理。
将第 2 步和第 3 步分开的原因是将读取文件所涉及的问题与处理文件所涉及的问题分开。
我可以用三个数据流块对此进行建模。我遇到的问题是,在所有文件都保存到数据库之前,我不希望块 3 启动。我需要某种方法来确定在块 1 中提取的所有文件都已由块 2 处理。块 2 将其 MaxDegreeOfParallelism 设置为 Unbounded - 我希望它们并行处理。
我考虑在前两个街区使用Encapsulate,但我认为这行不通。也许我需要某种Batchblock,但批次的大小并不相同。
我该怎么做?我需要创建自己的块类型吗?
【问题讨论】:
-
是否必须同时从数据库中读取所有数据,或者您可以逐个文件读取它们,或者类似的方式?
标签: c# .net task-parallel-library tpl-dataflow