title: Task.Run() in async ASP.Net MVC Controller action
body: <p>I need your advise on using <code>Task.Run()</code> in ASP.NET MVC async controller action. We currently have a time consuming backend SP that takes few minutes to execute when user clicks "Approve". User just need to approve and need not wait until this backend execution completes so we are using <code>Task.Run</code> here as seen in the below code. </p>
  
  <p>Earlier this was done by <code>ThreadPool.QueueUserWorkItem()</code> so that it is done in the background. Now, we are migrating this app to ASP.Net MVC 5.0.</p>
  
  <p>We tested this and its all working fine but we need to make sure if this will not create any problems in future. Please advise.</p>
  
  <pre><code>public async Task&lt;ActionResult&gt; ApprovePayments(int Id)
  {
   await (db.PaymentApprove(Id, User == null ? "" : User.Identity.Name));
   Task.Run(() =&gt; {
                      DBModel dbReport = new DBModel();
                      dbReport.PaymentReportCreate(Id);
                      dbReport.Dispose();
                  });
   SetUnapprovedPaymentsViewBag();
    return View("PendingPayments");    
  }     
  </code></pre>