我正在尝试在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发送给客户端。
异步与延迟更新客户端无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句