Asp.net
asp.net webform中如何使用async/await實現非同步頁面?
我們現在可以在 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。首先,將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_Load於 ASP.NET 4.5。此外,他們還添加了檢查您是否不正確地使用async事件處理程序。有關詳細資訊,請參閱此影片。