我读过有关ASP.NET异步页面的内容,在阅读了一些材料之后,我对这个概念仍然有点不清楚。因此,我在下面写这样的东西来寻求验证,这是一个异步页面?或者我误解了这个概念?非常感谢您的见解。
<%@ Page Language="C#" AutoEventWireup="true" Async="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
代码背后:
public partial class _Default : System.Web.UI.Page
{
System.ComponentModel.BackgroundWorker bw = new System.ComponentModel.BackgroundWorker();
protected void Page_Load(object sender, EventArgs e)
{
bw.DoWork += bw_DoWork;
bw.RunWorkerCompleted += bw_RunWorkerCompleted;
bw.RunWorkerAsync();
}
void bw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
System.Threading.Thread.Sleep(5000);
}
void bw_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
Form.Controls.Add(new LiteralControl("<p>Finished.</p>"));
}
}
答案 0 :(得分:2)
我会说不,这不是异步页面通常在ASP.NET中实现的方式。
首先,工作进程(ASP.NET引擎)使用线程池来提供到达服务器的请求。因此,您不必在代码中使用System.ComponentModel.BackgroundWorker
。
我不是这方面的专家,所以我认为最好直接从源头上掌握基础知识。以下是关于ASP.NET中异步页面的2篇好文章: