当前位置:首页 >> 电力/水利 >>

C# progressBar进度条--实时


C# progressBar 进度条--实时 2009-02-23 13:15using System;

using using using using using using using using using

System.Collections.Generic; System.ComponentModel; System.Data

; System.Drawing; System.Text; System.Windows.Forms; System.IO; System.Threading; System.Reflection;

namespace DataBackup { public partial class FrmBackup : Form { /// <summary> /// Self_Variable: progressBar 进度条 /// </summary> private delegate void sprogressBar(); public FrmBackup() { InitializeComponent(); }

#region 本类全局变量 /// <summary> /// Self_Object:其它操作方法对象 /// </summary> BackOther other = new BackOther(); /// <summary> /// Self_Variable:统计总字节数 /// </summary> private int totalSize = 0; /// <summary> /// Self_Variable:剩余字节数 /// </summary>

private int position = 0; /// <summary> /// Self_Variable:字节数对比 /// </summary> private const int BUFFER_SIZE = 4096; /// <summary> /// buffer 字节数组 /// </summary> private byte[] buffer; /// <summary> /// Self_Variable:字节视图 /// </summary> private Stream stream; #endregion

#region 备



private void button1_Click(object sender, EventArgs e) { //创建文件夹 other.FileExists(); //备份路径 string dbpath = "..\\..\\..\\Data\\gs_back_gw680.mdb"; //源数据库路径 string sourcepath = "..\\gs_gw680.mdb"; //创建备份数据库 BackOther.CreateAccess(dbpath); //压缩源数据库 BackOther.CompactAccess(sourcepath); FileStream fs = new FileStream(sourcepath, FileMode.Open, FileAccess.Read); totalSize = Convert.ToInt32(fs.Length); stream = fs; if (totalSize > BUFFER_SIZE) { buffer = new byte[BUFFER_SIZE]; stream.BeginRead(buffer, 0, BUFFER_SIZE, new AsyncCallback(AsyncCopyFile), null);

} else { fs.Close(); } } #endregion

#region 异步方法 /// <summary> /// Asynchronously copy file /// </summary> /// <param name="ar"></param> private void AsyncCopyFile(IAsyncResult ar) { int readedLength; // Lock FileStream lock (stream) { readedLength = stream.EndRead(ar); // When stream endread, get readed length } // Write to disk string dbpath = "..\\..\\..\\Data\\gs_back_gw680.mdb"; FileStream fsWriter = new FileStream(dbpath, FileMode.Append, FileAccess.Write); fsWriter.Write(buffer, 0, buffer.Length); fsWriter.Close(); // Current stream position position += readedLength; //调用委托实现 progressBar 进度条 progressBar.BeginInvoke(new sprogressBar(SynchProgressBar)); // Read over. if (position >= totalSize) { //Close FileStream

stream.Close(); MessageBox.Show("备份完成!"); //忽略线程中的某些异常调用 Control.CheckForIllegalCrossThreadCalls = false; this.btnBack.Enabled = false; this.progressBar.Maximum = 0; this.progressBar.Value = 0; return; }

// Continue to read and write lock (stream) { int leftSize = totalSize - position; if (leftSize < BUFFER_SIZE) buffer = new byte[leftSize]; stream.BeginRead(buffer, AsyncCallback(AsyncCopyFile), null); } } 0, buffer.Length, new

/// <summary> /// Self_Function:修改进度条信息 /// </summary> private void SynchProgressBar() { this.progressBar.Maximum = totalSize; this.progressBar.Value = position; } #endregion } }


相关文章:
C# progressBar进度条--实时
C# progressBar进度条--实时_电力/水利_工程科技_专业资料。C# progressBar进度条--实时C# progressBar 进度条--实时 2009-02-23 13:15using System; using using...
C#使用进度条ProgressBar和定时器Timer控件
C#使用进度条 ProgressBar 和定时器 Timer 控件 一、实例说明 ProgressBar 类主耍用来显示进度,其 Maximum 和 Minimum 属性分别表示进 度条的最大和最小值; Value...
jQuery-EasyUI基础教程之Progressbar进度条
jQuery-EasyUI基础教程之Progressbar进度条_计算机软件及应用_IT/计算机_专业资料。掌握Progressbar的使用方法 http://xueyuan.lanqiao.org jQuery-EasyUI 基础教程之 ...
进度条
C# 多线程使用 progressBar 进度条控 件该例子对为多线程使用 progressBar 的一个简单例子。 实现: (1)计算 progressBar 运行时间(既进度条开始到结束的时间) (2...
Java 进度条 JProgressBar 简单
Java 进度条 JProgressBar 简单_计算机软件及应用_IT/计算机_专业资料。Java 进度...progressbar = new JProgressBar(); progressbar.setOrientation(JProgressBar.HORIZONTA...
C#_进度条控件ProgressBar_和列表试图控件LiseView
C#_进度条控件ProgressBar_和列表试图控件LiseView_计算机软件及应用_IT/计算机_专业资料。C# 相关资料C# 进度条控件 ProgressBar 和列表试图控件 LiseView - 叶子 -...
进度条
就是没有实时更新 SEEKBAR 不知道是我添加错哪里了...时间设置成进度条的最大值 musicProgressBar.setMax(...C#源代码实现进度条功能 7页 免费 制作进度条 15页...
C#进度条的使用
C#进度条的使用_计算机软件及应用_IT/计算机_专业资料。C#进度条的使用,附有垂直...{ // Inserts code to copy a file progressBar1.PerformStep(); // Updates...
Android ProgressBar自定义图片进度,自定义渐变色进度条
ProgressBar 的样式有四种: android:progressBarStyle :默认进度条样式,不确定模式 android:progressBarStyleHorizontal :水平进度条样式 android:progressBarStyleLarge :大号...
C#源代码实现进度条功能
C#源代码实现进度条功能_IT/计算机_专业资料。GProgressBar,是一个进度条控件,能够设置进度条的背景色和前景色,设置进度条的外观方式(3d,single,none),是否自动显示...
更多相关标签:
c 实时进度条 | progressbar进度条 | ajax 加载实时进度条 | java web实时进度条 | ajax实时刷新进度条 | jquery实时进度条 | 实时进度条 | js 进度条 实时 |