簡體   English   中英

無法在ASP.NET Webforms中運行任務異步

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM