title: How does async works in C#?
body: <p>Microsoft announced the <a href="http://msdn.microsoft.com/en-us/vstudio/async.aspx" rel="nofollow noreferrer">Visual Studio Async CTP</a> today (October 28, 2010) that introduces the <code>async</code> and <code>await</code> keywords into C#/VB for asynchronous method execution.</p>
  <p>First I thought that the compiler translates the keywords into the creation of a thread but according to the <a href="http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=d7ccfefa-123a-40e5-8ed5-8d2edd68acf4&amp;displaylang=en" rel="nofollow noreferrer">white paper</a> and Anders Hejlsberg's <a href="http://player.microsoftpdc.com/Session/1b127a7d-300e-4385-af8e-ac747fee677a" rel="nofollow noreferrer">PDC presentation</a> (at 31:00) the asynchronous operation happens completely on the main thread.</p>
  <p>How can I have an operation executed in parallel on the same thread? How is it technically possible and to what is the feature actually translated in IL?</p>