下面是我简单的源代码,我只是试图调用页面加载后,该功能,但什么,现在的情况是:它要求页面加载之前该功能。页面加载5秒钟,在这之后,它会显示标签执行。
protected void Page_Load(object sender, EventArgs e)
{
display();
}
void display()
{
Thread.Sleep(5000);
Label3.Text = "done";
}
你应该了解ASP.NET页生命周期读this document。它实际上是说,你正在尝试做的是不可能的。
你在服务器端写的每一个代码将运行在浏览器呈现页面之前。这意味着你不能调用一个函数浏览器呈现页面后,除非你使用另一种方法。
你可以做到这一点,最简单的方法是使用Javascript和Ajax调用或使用Timer
,打开从主执行线程不同的一个新的线程。虽然,我不建议开新帖,因为你会失去控制权的执行流程,并在网页上,你可能最终有数百个开放式的线程。
下面代码工作
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";
}