加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在asp.net webform中使用异步/等待实现异步页面?

发布时间:2020-12-15 22:52:12 所属栏目:asp.Net 来源:网络整理
导读:现在我们可以在ASP.NET MVC 4中使用async / await关键词. public async TaskActionResult TestAsync(){ WebClient client = new WebClient(); return Content(await client.DownloadStringTaskAsync("http://www.google.com"));} 但是如何在ASP.NET WebForms
现在我们可以在ASP.NET MVC 4中使用async / await关键词.
public async Task<ActionResult> TestAsync()
{
    WebClient client = new WebClient();
    return Content(await client.DownloadStringTaskAsync("http://www.google.com"));
}

但是如何在ASP.NET WebForms中使用它?

解决方法

一个简单的方法是让你的事件处理程序异步.首先,将Async =“true”参数添加到@Page指令中,然后您应该可以编写异步事件处理程序:
protected async void Page_Load(object sender,EventArgs e)
{
  var client = new WebClient();
  var content = await client.DownloadStringTaskAsync("http://www.google.com");
  Response.Write(content);
}

我说“应该能够”,因为我实际上并没有这样做.但它应该工作.

更新:这不适用于Page_Load(请参阅this MSDN forum thread),但应适用于其他事件,例如按钮点击.

更新:这适用于ASP.NET 4.5中的Page_Load.此外,他们添加了检查,如果您不正确地使用异步事件处理程序. See this video for details.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读