Asynchrone C # -Aufgaben warten auf unbestimmte Zeit

Ich versuche, die von "async" und "await" bereitgestellten Funktionen zum asynchronen Herunterladen von Webseiteninhalten zu verwenden, und habe Probleme, bei denen die Aufgaben für immer auf ihren Abschluss warten. Könnten Sie mir bitte mitteilen, was mit dem folgenden Codeausschnitt nicht stimmt?

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;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage