[英]Can't run task async in ASP.NET Webforms
我正在嘗試在ASP.NET Webforms中創建一個異步任務。 在研究了互聯網的各種來源后,我創建了這個:
Default.aspx的:
namespace AsyncTestCs
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(LoadSomeData));
}
public async Task LoadSomeData()
{
var downloadedString = await new WebClient().DownloadStringTaskAsync("http://localhost:59850/WebForm1.aspx");
Label1.Text = downloadedString;
}
}
}
WebForm1.aspx的:
namespace AsyncTestCs
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Thread.Sleep(5000);
Response.Write("something");
}
}
}
但它不能異步工作。 加載downloadedString后將顯示此頁面。
我的錯誤在哪里?
您的服務器代碼未“附加”到客戶端上的控件。 ASP.NET生成HTML作為其處理的一部分並將其發送到客戶端。 之后,與請求關聯的所有ASP.NET對象都會死亡。 HTTP是基於請求 - 響應的。 沒有永久的聯系。
你在這里做的是等待5秒,然后配置標簽文本,然后將帶有該標簽文本的HTML發送到客戶端。
Async與客戶端的延遲更新無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.