C# TPL怎么知道所有的任务都完成了?

标签 c# task task-parallel-library

我有生成任务的循环。

代码:

Task task = null;
foreach (Entity a in AAAA)
{
  // create the task 
  task = new Task(() => {
    myMethod(a);
  },  Token, TaskCreationOptions.None);
  task.Start();
}

如你所见,在每次迭代中任务对象都有新的初始化(..new Task(() =>..) 我怎么知道所有任务都已完成?

最佳答案

如果您将其替换为

 Parallel.ForEach(...,  () => myMethod(a), ...)

然后您会在 ForEach 结束时自动等待所有任务。

也可能从单独的任务中运行 ForEach。

关于C# TPL怎么知道所有的任务都完成了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5067412/

相关文章:

c# - 标志和 << 对枚举的操作? C#

c# - Task.ContinueWith执行顺序

C# 如何取消进度条?

.net - 终止 .NET 4 TPL 中的死锁任务

c# - "awaitable"任务的严格定义是什么?

c# - 如何加载 PNG 并导出到 TGA 在 C# 中保持 alpha?

c# - 处理 SignalR .Net 客户端中的异常

c# - 如何加速计算多个项目的所有可能分布的算法?

c# - 如何将松散耦合和可扩展的设计与可能的异步实现相结合?

c# - 异步方法正确吗?锐器警告