<" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

asp.net利用多線程執(zhí)行長(zhǎng)時(shí)間的任務(wù),客戶端顯

系統(tǒng) 2450 0
對(duì)上一次的做一點(diǎn)修改,增加一個(gè)比較美觀的進(jìn)度顯示

csdn_article001.jpg
上面那個(gè)是運(yùn)行中的畫(huà)面,下面那個(gè)是結(jié)束后的畫(huà)面
csdn_article002.jpg
用到的圖標(biāo)在這里: clocks.gif

對(duì)上次的前臺(tái)修改如下:

<%@ Page language="c#" Codebehind="WebForm54.aspx.cs" AutoEventWireup="false" Inherits="csdn.WebForm54" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<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="請(qǐng)等待" 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="運(yùn)行一個(gè)長(zhǎng)時(shí)間的任務(wù)"></asp:Button><BR>
<BR>
<asp:Label id="lab_jg" runat="server"></asp:Label>
</form>
</body>
</HTML>

后臺(tái)修改如下:

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
{
/// <summary>
/// WebForm54 的摘要說(shuō)明。
/// </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)
{
// 在此處放置用戶代碼以初始化頁(yè)面
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")+" 秒過(guò)去了,完成百分比:"+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="任務(wù)結(jié)束,并且成功執(zhí)行所有操作,用時(shí) "+((TimeSpan)(w.FinishTime-w.StartTime)).TotalSeconds+" 秒";
this.btn_startwork.Enabled=true;
this.div_load.Visible=false;
break;
}
case 3:
{
this.lab_jg.Text="任務(wù)結(jié)束,在"+((TimeSpan)(w.ErrorTime-w.StartTime)).TotalSeconds+"秒的時(shí)候發(fā)生錯(cuò)誤導(dǎo)致任務(wù)失敗'";
this.btn_startwork.Enabled=true;
this.div_load.Visible=false;
break;
}
}
}

#region Web 窗體設(shè)計(jì)器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調(diào)用是 ASP.NET Web 窗體設(shè)計(jì)器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
/// </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-沒(méi)有開(kāi)始,1-正在運(yùn)行,2-成功結(jié)束,3-失敗結(jié)束
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;//這里就是定義百分比,你估計(jì)這個(gè)操作費(fèi)多少時(shí)間定義多少百分比
}
conn.Close();
//以上代碼執(zhí)行一個(gè)比較消耗時(shí)間的數(shù)據(jù)庫(kù)操作
State=2;
}
catch
{
ErrorTime=DateTime.Now;
Percent=0;
State=3;
}
finally
{
FinishTime=DateTime.Now;
Percent=0;
}
}
}
}

asp.net利用多線程執(zhí)行長(zhǎng)時(shí)間的任務(wù),客戶端顯示出任務(wù)的執(zhí)行進(jìn)度的示例


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 日本高清中文字幕在线观穿线视频 | 看看免费a一片欧 | 国产精品成人免费视频 | 久久九色综合九色99伊人 | 国产精品一区二区欧美视频 | 日本欧美在线观看 | 久热99这里只有精品视频6 | 99中文字幕 | 国产精品久久久久无码av | 久久亚洲精品tv | 午夜日韩| 国产网站视频 | 精品999久久久久久中文字幕 | 尤物久久99热国产综合 | 曰韩三级| 久久成人精品免费播放 | 久久久亚洲欧洲日产国码二区 | 欧美日韩一区二区三区久久 | 国产精品分类视频分类一区 | 国产日韩亚洲 | 四虎永久免费观看紧急入口 | 国产精品久久久久久久久久98 | 欧美交换乱理伦片120秒 | 亚洲12色吧 | 四虎www免费人成 | 欧美成人午夜视频在线观看 | 国产一级毛片外aaaa | 九九九九九九精品免费 | 四虎永久在线观看视频精品 | 精品久久洲久久久久护士免费 | 久久图片 | 成人国产精品视频 | 国产亚洲视频在线 | 日本在线一区二区 | 日本不卡在线观看 | 国产福利在线观看第二区 | 精品久久久久久久中文字幕 | 色综合天天综合网亚洲影院 | 9久久这里只有精品国产 | 亚洲 欧美 精品 中文第三 | 在线播放精品一区二区啪视频 |