日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

html显示任务进度,(原创)asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)...

發布時間:2025/3/19 asp.net 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html显示任务进度,(原创)asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對上一次的做一點修改,增加一個比較美觀的進度顯示[@more@]對上一次的做一點修改,增加一個比較美觀的進度顯示

上面那個是運行中的畫面,下面那個是結束后的畫面

用到的圖標在這里:

對上次的前臺修改如下:

WebForm54

" name="vs_targetSchema">

class="font" style="FILTER: Alpha(opacity=80); WIDTH: 320px; HEIGHT: 72px">

后臺修改如下:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

namespace csdn

{

/// /// WebForm54 的摘要說明。

///

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("","");

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);

}

/// /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

/// 此方法的內容。

///

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("","");

}

}

}

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;

}

}

}

}

總結

以上是生活随笔為你收集整理的html显示任务进度,(原创)asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。