我希望使用httpclient下载大量文件,对它们执行一些耗时但不昂贵的计算,然后在运行一些查询后将结果添加到我的数据库中,显示它尚不存在。
我怎样才能从概念上做到这一点(只是等待的位置等会有帮助)
我目前有以下内容:
获取地址列表 添加(等待网页下载,然后继续处理)到任务列表 foreach 列表中的元素,对其进行等待,然后将其添加到数据库中。
但是,这似乎本质上是串行运行的。
应该如何设计?
最佳答案
我将使用 TPL Dataflow
设置管道。您发布的地址和参与者是:
- 网页下载
- 处理
- 添加到数据库
尽可能使用async
(只要操作是真正异步的)并设置较高的MaxDegreeOfParallelism
以允许TPL
选择本身的最佳值。
关于.net - 使用异步和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22758353/