Es la nueva característica de C # async implementada estrictamente en el compilador

Como programador de C # cuyo interés en explorar "cómo funcionan las cosas", me interesa entender un poco más sobre el proceso que hace que el nuevoasíncrono trabajo característica

He seguido la excelente serie de artículos de Eric Lippert en async:Async blog posts

No recuerdo haber visto en ninguna parte ninguna referencia a la implementación de esta característica (en un nivel alto), excepto por el hecho de que "el compilador está haciendo la mayor parte del trabajo" por nosotros.

¿Es esta característica estrictamente una característica del compilador entonces? ¿El compilador reescribe el código de alguna manera y eso es todo? ¿O hay otras cosas como el soporte en tiempo de ejecución que hacen que esto suceda?

Respuestas a la pregunta(1)

Su respuesta a la pregunta