C# asp.net多线程页面

C# asp.net多线程页面,c#,asp.net,.net,multithreading,C#,Asp.net,.net,Multithreading,我正在制作一个页面,通过从不同的服务器获取数据来显示系统的当前状态 在我的页面上,我有五个不同的标签和一个按钮。我希望单击按钮后,五个不同的线程从服务器获取数据并更新相应的标签值。我用以下代码制作了一个测试应用程序 protected void Page_Load(object sender, EventArgs e) { Thread t = new Thread(updateLbl); t.Start(); } protect

我正在制作一个页面,通过从不同的服务器获取数据来显示系统的当前状态

在我的页面上,我有五个不同的标签和一个按钮。我希望单击按钮后,五个不同的线程从服务器获取数据并更新相应的标签值。我用以下代码制作了一个测试应用程序

protected void Page_Load(object sender, EventArgs e)
    {
        Thread t = new Thread(updateLbl);
        t.Start();
    }   


    protected void btnUpdateStatus_Click(object sender, EventArgs e)
    {
        Thread[] arrThread = new Thread[5];
        for (int i = 0; i < arrThread.Length; i++)
        {

            arrThread[i] = new Thread(new ParameterizedThreadStart(Update));
            arrThread[i].Name = "Thread" + (i + 1).ToString();

            arrThread[i].Start(
                new Parameters()
                    {
                        id = i + 1,
                        label = this.Master.FindControl("MainContent").FindControl ("Label" + (i + 1).ToString()) as Label
                    } as object);
        }
    }
    public void Update(object o)
    {
        Parameters p = o as Parameters;
        if (p != null && p.label != null)
        {
            p.label.Text = GetSystemState(p.id);
        }
    }
    class Parameters
    {
        public int id { get; set; }
        public Label label { get; set; }
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
线程t=新线程(UpdateBL);
t、 Start();
}   
受保护的void btnUpdateStatus_单击(对象发送者,事件参数e)
{
线程[]arrThread=新线程[5];
对于(int i=0;i
它会更新标签的值,但页面会继续加载,直到从服务器检索到所有值,然后立即在页面上显示它们


我想要一些东西,如果线程已经检索到它;的数据,则无论其他进程是否检索到其数据,其相应的标签都必须更新并可供客户使用,并且必须在检索到数据后立即进行更新。

根本问题是了解ASP.Net页面的生命周期

基本上,您在页面上使用多线程,但服务器将向用户发送响应,直到页面处理完成

要获得所需的输出,请遵循以下方法:

有关更多信息:


    • 根本问题在于理解ASP.Net页面的生命周期

      基本上,您在页面上使用多线程,但服务器将向用户发送响应,直到页面处理完成

      要获得所需的输出,请遵循以下方法:

      有关更多信息:


      但这不是ASP.NET页面生命周期的本质。过程背后的代码以及完成后的HTML将被发布。使用HTML5,我认为您可以更新单个元素,但我不知道如何更新。是否有任何方法可以使用ajax或页面方法对页面上的每个控件进行部分更新,但这不是ASP.NET页面生命周期的本质。过程背后的代码以及完成后的HTML将被发布。有了HTML5,我想你可以更新单个元素,但我不知道如何更新。难道没有任何方法可以让我使用ajax或page方法对页面上的每个控件进行部分更新吗