gpt4 book ai didi

c# - 无法在 ASP.NET Webforms 中运行异步任务

转载 作者:行者123 更新时间:2023-11-30 16:57:25 26 4
gpt4 key购买 nike

我正在尝试在 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 发送给客户端。

异步与延迟更新客户端无关。

关于c# - 无法在 ASP.NET Webforms 中运行异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com