Tarefas assíncronas em C # esperando indefinidamente

Estou tentando usar a funcionalidade fornecida por "async" e "await" para baixar de forma assíncrona o conteúdo da página da Web e tenho problemas em que as Tarefas estão esperando para sempre serem concluídas. Você poderia, por favor, me avisar o que está errado com o seguinte trecho de código?

protected void Page_Load(object sender, EventArgs e)
{
    var websites = new string[] {"http://www.cnn.com","http://www.foxnews.com"};
    var tasks = websites.Select(GenerateSomeContent).ToList();

    //I don't want to use 'await Tasks.WhenAll(tasks)' as I need to block the
    //page load until the all the webpage contents are downloaded
    Task.WhenAll(tasks).Wait();

    //This line is never hit on debugging
    var somevalue = "Complete";
}

static async Task<Results> GenerateSomeContent(string url)
{
    var client = new HttpClient();
    var response = await client.GetAsync(url); //Await for response
    var content = await response.Content.ReadAsStringAsync();
    var output = new Results {Content = content};
    return output;
}

//Sample class to hold results
public class Results
{
    public string Content;
}

questionAnswers(2)

yourAnswerToTheQuestion