title: Task.Factory.StartNew vs Task.Factory.FromAsync
body: <p>Let's suppose we have a I/O bound method (such as a method making DB calls). This method can be run both in synchronously and asynchronously. That is,</p>
  
  <ol>
  <li><p>Sync:</p>
  
  <pre><code>IOMethod()
  </code></pre></li>
  <li><p>Async:</p>
  
  <pre><code>BeginIOMethod()
  EndIOMethod()
  </code></pre></li>
  </ol>
  
  <p>Then when we execute the method in different ways as shown below, what's the performance difference in terms of the resource utilization?</p>
  
  <ol>
  <li><pre><code>var task = Task.Factory.StartNew(() =&gt; { IOMethod(); });
  task.Wait();
  </code></pre></li>
  <li><pre><code>var task = Task.Factory.FromAsync(BeginIOMethod, EndIOMethod, ... );
  task.Wait();
  </code></pre></li>
  </ol>