title: How to wait on all tasks (created task and subtask) without using TaskCreationOptions.AttachedToParent
body: <p>I will have to create a concurrent software which create several Task, and every Task could generate another task(that could also generate another Task, ...).</p>
  
  <p>I need that the call to the method which launch task is blocking: no return BEFORE all task and subtask are completed.</p>
  
  <p>I know there is this <code>TaskCreationOptions.AttachedToParent</code> property, but I think it will not fit:</p>
  
  <p>The server will have something like 8 cores at least, and each task will create 2-3 subtask, so if I set the <code>AttachedToParent</code> option, I've the impression that the second sub-task will not start before the three tasks of the first subtask ends. So I will have a limited multitasking here.</p>
  
  <p>So with this process tree:</p>
  
  <p><img src="https://i.stack.imgur.com/oEjTD.png" alt="enter image description here"></p>
  
  <p>I've the impression that if I set AttachedToParent property everytime I launch a thread, B will not ends before E,F,G are finished, so C will start before B finish, and I will have only 3 actives thread instead of the 8 I can have.</p>
  
  <p>If I don't put the AttachedToParent property, A will be finished very fast and return.</p>
  
  <p>So how could I do to ensure that I've always my 8 cores fully used if I don't set this option?</p>