这是一个ASP.NET异步页吗?

时间:2013-12-27 01:05:41

标签: c# asp.net asynchronous

我读过有关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>"));    
    }
}

1 个答案:

答案 0 :(得分:2)

我会说不,这不是异步页面通常在ASP.NET中实现的方式。

首先,工作进程(ASP.NET引擎)使用线程池来提供到达服务器的请求。因此,您不必在代码中使用System.ComponentModel.BackgroundWorker

我不是这方面的专家,所以我认为最好直接从源头上掌握基础知识。以下是关于ASP.NET中异步页面的2篇好文章:

相关问题