I have the Loop which generates tasks.
Code:
Task task = null;
foreach (Entity a in AAAA)
{
  // create the task 
  task = new Task(() => {
    myMethod(a);
  },  Token, TaskCreationOptions.None);
  task.Start();
}
As you can see in each iteration task object has new initialization (..new Task(() =>..) How can I know that all tasks done?
I f you replace this with a
 Parallel.ForEach(...,  () => myMethod(a), ...)
Then you get an automatic Wait on all tasks at the end of the ForEach.
And maybe run the ForEach from a separate Task.
var allTasks = new List<Task>();
foreach (Entity a in AAAA)
{
  // create the task 
  task = new Task(() => {
    myMethod(a);
  },  Token, TaskCreationOptions.None);
  // Add the tasks to a list
  allTasks.Add(task);
  task.Start();
}
// Wait until all tasks are completed.
Task.WaitAll(allTasks.ToArray());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With