title: Fire and Forget approach
body: <p>Related to <a href="https://stackoverflow.com/a/22630057/495262">this answer</a>,</p>
  
  <p>If I truly do want to "Fire and Forget" a method that does return a task, and (for simplicity) let's assume that the method isn't expected to throw any exceptions. I can use the extension method listed in the answer:</p>
  
  <pre><code>public static void Forget(this Task task)
  {
  }
  </code></pre>
  
  <p>Using this approach, if there are bugs in action of the <code>Task</code> that cause an exception to be thrown then when the unexpected exception is thrown, the exception will be swallowed and go unnoticed.</p>
  
  <p><strong>Question:</strong> Wouldn't it be more appropriate in this scenario for the extension method to be of the form:</p>
  
  <pre><code>public static async void Forget(this Task task)
  {
      await task;
  }
  </code></pre>
  
  <p>So that programming errors throw an exception and get escalated (usually bringing down the process).</p>
  
  <p>In the case of a method with expected (and ignorable) exceptions, the method would need to become more elaborate (as an aside, any suggestions on how to construct a version of this method that would take a list of acceptable and ignorable exception types?)</p>