Hello I have _noOfThreads as defined tasks to run at a time. So I keep continuing the Tasks by using % operator and at the end of the loop I have Tasks.WaitAll. This is the code snippet.
for (int index = 0; index < count; index++)
{
if (index < _noOfThreads)
tasks[index] = Task.Factory.StartNew(somedelegate);
else
tasks[index % _noOfThreads].ContinueWith(task => { foo.bar(); },
TaskContinuationOptions.AttachedToParent);
}
Task.WaitAll(tasks);
However, I notice it doesn’t wait for child tasks to complete. As soon as the parent tasks complete, the next line after Task.WaitAll gets executed. How do I change this code to wait for child tasks also?
I think you are allocating your Tasks as:
Change your code to be:
Give it a try! Good Luck 🙂