在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
<HEAD> <title>WebForm54</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <style type="text/css"> .font { FONT-WEIGHT: normal; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: "宋体", sans-serif; BACKGROUND-COLOR: #f0f0f0; TEXT-DECORATION: none } </style> </HEAD> <body> <form id="Form1" method="post" runat="server"> <div id="div_load" runat="server"> <table width="320" height="72" border="1" bordercolor="#cccccc" cellpadding="5" cellspacing="1" class="font" style="FILTER: Alpha(opacity=80); WIDTH: 320px; HEIGHT: 72px"> <TR> <TD> <P><IMG alt="请等待" src="clocks.gif" align="left"> <BR> <asp:Label id="lab_state" runat="server"></asp:Label></P> </TD> </TR> </table> <BR> </div> <asp:Button id="btn_startwork" runat="server" Text="运行一个长时间的任务"></asp:Button><BR> <BR> <asp:Label id="lab_jg" runat="server"></asp:Label> </form> </body> </HTML>
后台代码
csdn
{ /// <summary> /// WebForm54 的摘要说明。 /// </summary> public class WebForm54 : System.Web.UI.Page { protected System.Web.UI.HtmlControls.HtmlGenericControl div_load; protected System.Web.UI.WebControls.Button btn_startwork; protected System.Web.UI.WebControls.Label lab_state; protected System.Web.UI.WebControls.Label lab_jg; protected work w; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(Session["work"]==null) { w=new work(); Session["work"]=w; } else { w=(work)Session["work"]; } switch(w.State) { case 0: { this.div_load.Visible=false; break; } case 1: { this.lab_state.Text=""+((TimeSpan)(DateTime.Now-w.StartTime)).TotalSeconds.ToString("0.00")+" 秒过去了,完成百分比:"+w.Percent+" %"; this.btn_startwork.Enabled=false; Page.RegisterStartupScript("","<script>window.setTimeout('location.href=location.href',1000);</script>"); this.lab_jg.Text=""; break; } case 2: { this.lab_jg.Text="任务结束,并且成功执行所有操作,用时 "+((TimeSpan)(w.FinishTime-w.StartTime)).TotalSeconds+" 秒"; this.btn_startwork.Enabled=true; this.div_load.Visible=false; break; } case 3: { this.lab_jg.Text="任务结束,在"+((TimeSpan)(w.ErrorTime-w.StartTime)).TotalSeconds+"秒的时候发生错误导致任务失败'"; this.btn_startwork.Enabled=true; this.div_load.Visible=false; break; } } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.btn_startwork.Click += new System.EventHandler(this.btn_startwork_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void btn_startwork_Click(object sender, System.EventArgs e) { if(w.State!=1) { this.btn_startwork.Enabled=false; this.div_load.Visible=true; w.runwork(); Page.RegisterStartupScript("","<script>location.href=location.href;</script>"); } } } public class work { public int State=0;//0-没有开始,1-正在运行,2-成功结束,3-失败结束 public int Percent=0;//完成百分比 public DateTime StartTime; public DateTime FinishTime; public DateTime ErrorTime; public void runwork() { lock(this) { if(State!=1) { State=1; StartTime=DateTime.Now; System.Threading.Thread thread=new System.Threading.Thread(new System.Threading.ThreadStart(dowork)); thread.Start(); } } } private void dowork() { try { SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlCommand cmd=new SqlCommand("Insert Into test (test)values('test')",conn); conn.Open(); for(int p=0;p<100;p++) { for(int i=0;i<10;i++) { cmd.ExecuteNonQuery(); } Percent=p;//这里就是定义百分比,你估计这个操作费多少时间定义多少百分比 } conn.Close(); //以上代码执行一个比较消耗时间的数据库操作 State=2; } catch { ErrorTime=DateTime.Now; Percent=0; State=3; } finally { FinishTime=DateTime.Now; Percent=0; } } } }
原文章地址http://www.cnblogs.com/lovecherry/archive/2005/04/10/135090.html
以下为另一种方法 <head> |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论