在ASP.net中的线程后显示一个消息框

时间:2012-07-03 10:47:18

标签: c# asp.net multithreading message

我是.Net的新手。请帮帮我 我的aspx页面中有一个按钮和一个标签,我想在标签中显示文字,几秒钟后我想在按钮点击时显示消息框。 我的代码是 -

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblFirst" runat="server" Text=""></asp:Label> 
<asp:Button ID="btnClick" runat="server" Text="MyThread" 
       onclick="btnClick_Click" />
</ContentTemplate>
</asp:UpdatePanel>

代码文件 -

protected void btnClick_Click(object sender, EventArgs e)
    {
        lblFirst.Text = "Thread Start!";

        Thread threadObj = new Thread(new ThreadStart(myThreadMethod));
        threadObj.Start();
    }

    public void myThreadMethod()
    {
        //Server Code that take long time..
        Debug.Write("Thread Ending");
        Page.ClientScript.RegisterStartupScript(GetType(),"msgbox","alert('End');",true);

    }

我获得了Label的文本更改但未显示消息框 在线程之后是否可以显示消息框?
我怎么做呢? 感谢您的关注和回复。

3 个答案:

答案 0 :(得分:1)

使用背景工作者,然后添加事件BackGroundWorker完成,并在那个事件中添加你的消息框

        BackgroundWorker bgw = new BackgroundWorker();

    // setup the anonymous event, this fires when the thread starts
    bgw.DoWork += (sender, e) =>
    {
        // do work here
    };

    // event when the thread has finished
    bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler((sender, e) =>
    {
        // set yr messagebox here
    });

答案 1 :(得分:0)

@Nyein Nyein Chan Chan:

   Response.Write("<script language='javascript'>alert('Your message is here.')</script>");

答案 2 :(得分:0)

您可以使用System.Threading.Thread.Sleep(x);
以毫秒为单位替换x 在此之后,您可以使用Button1.PerformClick();
其中Button1是按钮的名称。