.net - 使用异步和集合

标签 .net entity-framework async-await c#-5.0

我希望使用httpclient下载大量文件,对它们执行一些耗时但不昂贵的计算,然后在运行一些查询后将结果添加到我的数据库中,显示它尚不存在。

我怎样才能从概念上做到这一点(只是等待的位置等会有帮助)

我目前有以下内容:

获取地址列表 添加(等待网页下载,然后继续处理)到任务列表 foreach 列表中的元素,对其进行等待,然后将其添加到数据库中。

但是,这似乎本质上是串行运行的。

应该如何设计?

最佳答案

我将使用 TPL Dataflow 设置管道。您发布的地址和参与者是:

  1. 网页下载
  2. 处理
  3. 添加到数据库

尽可能使用async(只要操作是真正异步的)并设置较高的MaxDegreeOfParallelism以允许TPL选择本身的最佳值。

关于.net - 使用异步和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22758353/

相关文章:

c# - 异步/等待 Android 下的不良做法?

c# - 如何等待异步委托(delegate)

c# - 在C#中,有没有办法始终如一地获取当前焦点窗口的选定文本内容?

.net - 为什么不对所有私有(private)方法使用静态方法?

c# - Ajax.ActionLink 从一个 View 发布整个模型?

c# - Entity Framework 在执行更新语句时抛出异常

.net - Entity Framework 4.1:如何按对象ID删除

javascript - Async/await - 等待函数和非等待函数的组合

javascript - 如何在 bulkwrite 的 for 循环中设置异步/等待?

.net - 什么是 dnu 包装?