15

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 でそれを使用するにはどうすればよいでしょうか?

4

2 に答える 2

22

簡単な方法の 1 つは、イベント ハンドラーを作成することasyncです。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(この MSDN フォーラム スレッドを参照)、ボタン クリックなどの他のイベントでは機能するはずです。

更新:これPage_LoadASP.NET 4.5 で機能します。また、asyncイベント ハンドラーを不適切に使用しているかどうかのチェックも追加されました。詳しくはこちらの動画をご覧ください。

于 2012-03-05T13:17:51.840 に答える