title: Why is non awaited Task blocking
body: <p>I am launching 2 tasks , without <code>await</code>-ing them , and one of them is depending on the other.
  I am trying to understand why is the following snipped of code blocking.<br></p>
  
  <pre><code>public class Tasks {
          EventWaitHandle handle = new EventWaitHandle(false, EventResetMode.ManualReset);
  
          public async Task Job1() {
              Console.WriteLine("Finished job1");
              handle.Set();
          }
  
          public async Task Job2() {
              handle.WaitOne();
              Console.WriteLine("Doing Job2 work");
          }
      }
  
      class Program {
          static async Task Main(string[] args) {
  
                  Tasks seq = new Tasks();
                  var t2 =seq.Job2();
                  var t1 =seq.Job1();
  
                  await Task.WhenAll(t1, t2);
                  Console.WriteLine("finished both");
          }
      }
  </code></pre>
  
  <p>If i create <code>CPU-bound</code> tasks for both my tasks it works :</p>
  
  <pre><code>var t2=Task.Run(seq.Job2);
  var t1=Task.Run(seq.Job1);
  </code></pre>
  
  <p>I have also tried to put both tasks in a separate task from the main thread and it still blocks:</p>
  
  <pre><code>var bigtask=Task.Run(async()=&gt;{
                           var t2 =seq.Job2();
                           var t1 =seq.Job1();
                       });
  </code></pre>
  
  <p>If i launch a task without await-ing it isn't it almost the same as starting a new <code>CPU-bound</code> task ? (<code>Task.Run</code>)</p>