并行任务组织者

时间:2013-04-28 18:06:02

标签: c# multithreading parallel-processing

我想在C#中实现多线程文件上传器

  1. 首先,我根据文件的大小(平均1 GB)计算文件的分段数。
  2. 我填写了要上传的细分的细分ID列表。
  3. 然后我遍历段ID列表以上传段。
  4. 如果段失败,我会再次将段ID重新插入其列表中。
  5. 我保存了段ID列表以支持上传连续性(此处的解决方法是保存正在进行的段的ID)。
  6. 我的问题是:

    1. 我用来保存我的段ID的列表在我的情况下是一个非常糟糕的数据结构。
    2. 我想要并行上传细分
    3. 现在的问题:

      • 在我的案例中使用哪种最佳数据结构来支持并行处理并跟踪失败的任务以重新安排它再次处理?

      由于

1 个答案:

答案 0 :(得分:3)

ConcurrentQueue很可能是您正在寻找的类型。

Enqueue所有细分,TryDequeue现在正在处理的细分,Enqueue再次失败。