Krótkie wyjaśnienie Async / Await in .Net 4.5

Jak działa Asynchronous tasks (Async / Await) w .Net 4.5?

Przykładowy kod:

private async Task<bool> TestFunction()
{
  var x = await DoesSomethingExists();
  var y = await DoesSomethingElseExists();
  return y;
}

Czy drugiawait&nbsp;instrukcja zostanie wykonana natychmiast lub po pierwszejawait&nbsp;wraca?