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利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)...相关推荐
- 利用DataSnap的回调功能在客户端显示服务器方法的执行进度
如果DataSnap服务器方法的执行时间比较长,这时候可能需要在客户端用进度条显示当前服务器方法的执行进度.要实现这种需求,现在可以利用DataSnap的回调功能,此功能是从Delphi 2010版本 ...
- asp.net利用RAR实现文件压缩解压缩【月儿原创】
asp.net利用RAR实现文件压缩解压缩 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.13 如果服务器上安装了RAR程 ...
- ASP中利用OWC控件实现图表功能详解[zz]
ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...
- 四位共阳极数码管显示函数_【项目8-任务10-小组13】利用四位数码管实现动态扫描显示...
学习任务 1.四位数码管的电路结构与显示原理 (什么是位选.什么是段选.共阴与共阳的区别.显示4位数字,需要多少条口线?显示n位数字呢?) 2.Arduino直接连接四位数码管实现四位阿拉伯数字显示 ...
- html在线随机抽取,利用纯html+javascript实现随机抽取显示
求助:利用纯html+javascript实现随机抽取显示 1 一个智力问答页面,每次显示一个判断题,最多可以连续答10题.题目从固定的10个问题中随机抽出一个且不能重复. 2 问题只有两种答案,对或 ...
- python执行效果_使用tqdm显示Python代码执行进度功能
在使用Python执行一些比较耗时的操作时,为了方便观察进度,通常使用进度条的方式来可视化呈现.Python中的tqdm就是用来实现此功能的. 先来看看tqdm的进度条效果: tqdm的基本用法 tq ...
- 使用 JQueryElement ResponseProgress 显示页面执行进度
今天将介绍的是, 如果页面需要在后台执行很长时间怎么办, 通过 ResponseProgress 你可以向用户显示后台页面的执行进度.. 由于精力有限, 不能在多个博客中保证文章的同步, 可在如下地址 ...
- ASP中利用OWC控件实现图表功能详解
在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图,簇状柱型图,折线图的使用方法.OWC的更 ...
- 多线程对比:通过创建线程的方式来同步MFC进度条显示
一.功能说明 目的:当主线程需要处理大量数据导致耗费时间很长时,主线程界面的进度条会卡顿不刷新,无法实时保持进度,因此需要将进度条显示与数据处理分开,将数据处理过程放在新建的线程中,主界面主要用来显示 ...
最新文章
- 经典算法研究系列:二、Dijkstra 算法初探
- java旅游系统项目经验_谁能跟我介绍一下Java 项目经验,刚进入这个行业。
- c语言x1=abc什么意思,c语言起步(课件)2.1
- CS229 6.6 Neurons Networks PCA主成分分析
- DataGrip以超级管理员身份登录Oracle
- HTML+CSS+JS实现 ❤️酷炫情人节爱心动画特效❤️
- timespan怎么比较大小_万能小哥丨厨房墙砖哪种好?厨房墙砖怎么挑选?
- ccs4c语言用户手册,CCS v4.x快速入门:EasyDsp开发套件产品手册
- 表单中enctype=multipart/form-data的意思
- mysql replace
- 高斯消元解线性方程组(浮点高斯消元模板)
- 视频教程-【深入理解计算机网络】入门计算机网络基础视频课程(下)-计算机网络
- Servlet实现登录带有验证码验证案例
- 五大方法 永久彻底关闭WIN10系统自动更新【已验证有效】
- awgn信道matlab建模,正交幅度调制信号在AWGN信道中传输的MATLAB仿真
- 如何搭建 MTK 6577模拟器
- 职位搜索引擎职友集开放招聘信息协议
- 安妮的50句经典[转贴]
- 关于socket中的send函数
- daocloud mysql_使用 DaoCloud 部署 NODE
热门文章
- python教程:类的装饰器方法、特殊成员方法
- python print %s 号格式化输出
- python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典
- http和https的区别和联系
- 在EXCEL里如何输入X的平方
- python 运算符 (算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级)(与或非)(异或)
- Python 安装第三方模块
- Minimum Extraction 思维
- javax.websocket.DeploymentException: The path [webScoketServiceBaidu/{appID}] is not valid.
- EXT中创建一个弹窗效果