我有以下 aspx 页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblStatus" runat="server" Text="Label">
</asp:Label><asp:Button ID="btnRun" runat="server" Text="Button" onclick="btnRun_Click" />
</div>
</form>
</body>
</html>
代码隐藏是:
public partial class index : System.Web.UI.Page
{
protected void btnRun_Click(object sender, EventArgs e)
{
CP CPObj = new CP();
lblStatus.Text = "Starting process..";
CPObj.run();
lblStatus.Text = "Process done.";
}
}
班级需要做一些工作(大约一分钟)。当我单击按钮时,标签不会更改,只有在班级完成作业后,标签才会更改为“处理完成。”。
我已经寻找了很长时间的解决方案,但找不到明确而直接的答案。
我试图将类作为线程运行并得到相同的结果。
public partial class index : System.Web.UI.Page
{
protected void btnRun_Click(object sender, EventArgs e)
{
CP CPObj = new CP();
Thread oThread = new Thread(new ThreadStart(CPObj.run));
lblStatus.Text = "Starting process..";
oThread.Start();
while (!oThread.IsAlive) ;
while (oThread.IsAlive)
{
Thread.Sleep(1000);
}
lblStatus.Text = "Process done.";
}
}
使用 JavaScript 似乎有问题,因为我已经有一个 onClick 调用(不确定我在这里是否正确)。
我真的很感激回复。
谢谢!纳达夫