如何使用c#在aspx上加载整页后延迟调用函数

时间:2018-11-05 06:58:40

标签: c# asp.net webforms page-lifecycle

下面是我的简单源代码,我只是想在页面加载后调用该函数,但是现在发生的是:它在页面加载前调用了该函数。页面加载5秒钟,然后显示标签执行。

protected void Page_Load(object sender, EventArgs e)
{
   display();
}

void display()
{
    Thread.Sleep(5000);
    Label3.Text = "done";
}

2 个答案:

答案 0 :(得分:2)

您应该阅读this document有关ASP.NET页面生命周期的信息。它实际上说您要做什么是不可能的。

您在服务器端编写的每个代码都将在浏览器呈现页面之前运行。这意味着您无法在浏览器呈现页面后调用函数,除非您使用其他方法。

最简单的方法是使用Javascript和 Ajax调用,或使用Timer,这将打开一个与主执行线程不同的新线程。虽然,我不建议打开新线程,因为您将失去对执行流程的控制,并且在一个网页中,您可能最终会拥有数百个打开线程。

答案 1 :(得分:-3)

以下代码有效

protected  void Page_Load(object sender, EventArgs e)
{
    Timer1.Interval = 2000;
    Timer1.Enabled = true;
}
protected void Timer1_Tick(object sender, EventArgs e)
{
        Label3.Text = "done";
}