title: async await best practices
body: <p>I've grasped the concept of async await and have been using it sporadically, but do have a couple questions regarding best practices.</p>
  
  <ol>
  <li><p>is it ok to use await in a while(condition) loop to keep fetching data that may be present, until the while condition changes, e.g. stopProcessingMessages = false.</p></li>
  <li><p>in an application such as winforms,  while UI runs on it's thread, using async/await on an operation such as a button click is fairly trivial, but what about if I would like to enforce asynchronously throughout an entire console application, or even a windows service. what is the best practice to initially kick off that first await task, would that be Task.Run (() => ... )? </p></li>
  </ol>
  
  <p>I hope I am making sense in my 2nd question. I want to make the most of async and utilize it to it's full extent, but just need to understand how to kick off the initial asynchronous operation before it bubbles down to all other asynchronous functions.</p>
  
  <p>apologies for not using the proper code blocks I am on the train using my smartphone.</p>