相关疑难解决方法(0)

C#异步任务无限期等待

我正在尝试使用"async"和"await"提供的功能来异步下载网页内容,我遇到了任务等待永远完成的问题.你可以告诉我下面的代码片段有什么问题吗?

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 …
Run Code Online (Sandbox Code Playgroud)

c# asp.net async-await dotnet-httpclient

12
推荐指数
1
解决办法
6896
查看次数

标签 统计

asp.net ×1

async-await ×1

c# ×1

dotnet-httpclient ×1