Один простой способ - просто сделать ваши обработчики событий 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
. Подробности смотрите в этом видео.