<" />

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

asp.net利用多線程執行長時間的任務,客戶端顯

系統 2014 0
對上一次的做一點修改,增加一個比較美觀的進度顯示

csdn_article001.jpg
上面那個是運行中的畫面,下面那個是結束后的畫面
csdn_article002.jpg
用到的圖標在這里: clocks.gif

對上次的前臺修改如下:

<%@ 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="請等待" 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>

后臺修改如下:

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 的摘要說明。
/// </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;
}
}
}
}

asp.net利用多線程執行長時間的任務,客戶端顯示出任務的執行進度的示例


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧美色综合精品 | 综合色亚洲 | 91视频观看免费 | 欧美在线观看一区 | 操bb影院| 久久综合九色综合狠狠97 | 色吧在线视频 | 日韩中文字幕精品免费一区 | 国产一区视频在线 | 又黑又粗又硬欧美视频在线观看 | 国产91精品久久久久久久 | 青青青国产观看免费视频 | 四虎影视免费看 | 99热久久这里只有精品首页 | 国产乱码一区二区三区 | 欧美熟videos肥婆 | 99热久| 久久精品国产精品亚洲精品 | 亚洲福利 影院 | 亚洲第一在线 | 4hu最新| 精品无码久久久久久久动漫 | 最新777奇米影视四色 | 欧美理论片大全在线观看 | 国产美女一级视频 | 亚洲精品久久成人福利 | 加勒比一本大道在线 | se94se在线看片secom | 亚洲一级毛片免费在线观看 | 五月天免费在线视频 | 精品国产亚一区二区三区 | 中文字幕在线播放一区 | 全黄一级裸片视频免费区 | 国产成人丝袜网站在线观看 | 99精品国产高清一区二区 | 日韩短视频 | 国产一区视频在线免费观看 | 亚洲午夜日韩高清一区 | 人人澡人人干 | 4399一级成人毛片 | 国产一区二区三区日韩 |