title: Asynchronous or batch processing with C#
body: <p>I have a .Net application in C# that I am in need of some async processing.  The user will upload a file of PEOPLE records from the aspx page and the system should upload the file, parse the file, load the people in the database, and then move the file out of the initial directory that it was uploaded to.  </p>
  
  <p>I don't want the user to have to wait for this, as some files may have thousands of records, and the system could take a while to go through all of them.  I basically want to return a message that says, "Thank you for uploading your file.  The system will process it and send you an email when it has been completed".</p>
  
  <p>I have read about the new async/await keywords, but I'm not sure if that is the route that I should take for this.  I basically just need a button event handler to upload the file and the kick off a "batch" process to finish dealing with the file while returning control to the user on the UI to do whatever else he/she wants to do on the site.</p>
  
  <p>I guess the secondary question would be: Does await return control to the user when used within a button event handler method? If so, then this seems to be a perfect solution for me as it won't block the thread or the user.</p>
  
  <p>Is there a better method or pattern that I should use for this, or is async/await sufficient?</p>