下面是我的简单源代码,我只是想在页面加载后调用该函数,但是现在发生的是:它在页面加载前调用了该函数。页面加载5秒钟,然后显示标签执行。
protected void Page_Load(object sender, EventArgs e)
{
display();
}
void display()
{
Thread.Sleep(5000);
Label3.Text = "done";
}
答案 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";
}