WinForm进度条问题
将一个大文件拷贝到另外一个地方,由于时间较长,想用进度条显示文件拷贝进度,如何实现,要有源码?不能用timer做假的。 --------------------编程问答-------------------- http://www.our-code.com/news/20101010/n3657162.html这里有源码。 --------------------编程问答-------------------- 用双线程啊,文件总数和拷了的文件数的比。 --------------------编程问答-------------------- 我的题目是WinForm,不是web.看清楚题目再回答。 --------------------编程问答-------------------- 这个貌似是WEB板块吧,。。。 --------------------编程问答--------------------
using System.Threading;//引入命名空间
Thread thread = null;//其次声明一个线程对象
public delegate void DelSetPro(int pros);//声明一个委托对象
//// <summary>
/// 设置进度条内容
/// </summary>
/// <param name="pros">渐变的值</param>
private void SetProContent(int pros)
{
if (pros <= 100)
{
//起初调用方位于创建控件所在的线程以外的的线程中,所以必须调用Invoke方法
if (this.InvokeRequired)
{
DelSetPro delsetpro = new DelSetPro(SetProContent);
//在拥有控件的线程上,用指定的参数列表执行指定委托
this.Invoke(delsetpro, new object[] { pros });
}
else
{
this.pBarLinking.Value = pros;
}
}
else
{
thread.Abort();//终止线程
}
}
///// <summary>
/// 阻止当前线程
/// </summary>
private void SleepThread()
{
for (int i = 0; i < 500; i++)
{
Thread.Sleep(100);
//修改进度条的前进速度,可修改[/]号后面的数字,数字越小,速度越快
SetProContent(100 * i / 30);
}
}
//最后在窗体加载事件中或是按钮点击事件中启动线程
thread = new Thread(new ThreadStart(SleepThread));
thread.Start();
参考 --------------------编程问答-------------------- 谁能给一个完整的源码,分全给了。。。。。 --------------------编程问答--------------------
你拷一个大文件的话,肯定不是把它全部写到缓冲区里面,然后再从缓冲区里面取出来,放到另外一个地方
必须就是分段拷贝,然后再重新整合
举个例子,文件总分了N 个Block,当前拷了K 个,那进度就是 K / N
不难,提供个思路,自己实现吧
补充:.NET技术 , ASP.NET