kolay yollarından biri, sadece olay işleyicileri async
yapmaktır. Birincisi, @Page
yönergesine Async="true"
parametre eklemek ve sonra gibi zaman uyumsuz olay işleyicileri yazma gerekir: Aslında kendim denemedim "gerekir" çünkü
diyorum
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);
}
. Ama işe yaramalı.
Güncelleme: Bu does değil Page_Load
için işi (this MSDN forum thread bakınız), ancak bu tür düğme tıklamak gibi diğer etkinlikler için çalışmalıdır.
Güncelleme: Bu ASP.NET 4.5 Page_Load
için çalışır. Ayrıca, async
olay işleyicisini uygunsuz şekilde kullanıp kullanmadığınızı denetler. http://www.hanselman.com/blog/TheMagicOfUsingAsynchronousMethodsInASPNET45PlusAnImportantGotcha.aspx Web formlarını zaman uyumsuz kullanmak için tek güvenilir yolu göre
Ve ben bunu denedim, o işe yaramaz. – Dozer
Doğru çalışıyor! – Dozer
bekliyor anahtar kelimenin o düğme tıklama için farklı olsun ki neden Page_Load asenkron operasyon hakkında Sayfa sınıfını bildiren olmasaydım? Ancak, bunun şu anda desteklendiği güncelleştirme için teşekkürler. – Michael