Uso de async/await en C#

Introducción

A partir de C# 4.5, se incorporaron al lenguaje las palabras clave async y await, que facilitan la escritura de código asíncrono. Esto no significa que con solo poner estas palabras el código se ejecutará de manera asíncrona. Es un poco mas complejo, y lo veremos en este post.

Esta guia también esta disponible en forma de video, si asi lo preferís:

La forma antigua

Los que hemos trabajado con Winforms (y tambien los programadores Java) sabemos del gran problema de llamar a operaciones largas desde el hilo principal. Como este es el hilo donde corre la UI, si llamamos a una operación larga se bloquea y no es posible ni siquiera mover la ventana.