private void button3_Click(object sender, EventArgs e)
        {
            
            Thread thread = null;
            //为了不让界面死掉,要将该操作放在一个线程中
            thread = new Thread
                (
                () => 
                {
                    //告诉系统不去检测非法的跨线程调用 
                    CheckForIllegalCrossThreadCalls = false;
                    
                    //创建一个文件流指向源文件
                    FileStream fsRead = new FileStream(this.textBox1.Text, FileMode.Open);
                    //创建一个文件流指向目标文件
                    FileStream fsWrite = new FileStream(this.textBox2.Text, FileMode.Create);
                    //记录一下该文件的长度
                    long fileLength = fsRead.Length;
                    //定义一个1M的缓冲区
                    byte[] buffer = new byte[1024 * 1024];
                    //先读取一次,并且将读取到的真正内容长度记录下来
                    int readLength = fsRead.Read(buffer, 0, buffer.Length);
                    //用来记录已经将多少内容写入到了文件中
                    long readCount = 0;
                    //只要读取到的内容不为0就接着读
                    while (readLength!=0)
                    {
                        //将前面已经读取到内存中的数据写入到文件中
                        fsWrite.Write(buffer ,0,readLength);
                        //已经读取的数量累加
                        readCount += readLength;
                        //计算已经读取的数据百分比
                        int percentage =(int)( readCount * 100 / fileLength);
                        this.progressBar1.Value = percentage;
                        //进行下一次读取
                        readLength = fsRead.Read(buffer, 0, buffer.Length);

}
                    fsRead.Close();
                    fsWrite.Close();
                    //清空缓冲区
                    buffer = null;
                    //回收一下内存
                    GC.Collect();
                    thread.Abort();
                    
                }
                );
            thread.Start();
        }

最新文章

  1. 讲座:Influence maximization on big social graph
  2. Jquery源码学习(第一天)
  3. DevExpress TreeList使用心得
  4. select元素中设置padding效果
  5. 关于NPOI
  6. Exchange 2013 、Lync 2013、SharePoint 2013 三
  7. JS 关闭 页面 浏览器 事件
  8. markdown 设置字体颜色
  9. 如何增强 Linux 系统的安全性,第一部分: Linux 安全模块(LSM)简介
  10. ubuntu 12.04安装telnet和ssh服务
  11. lua if
  12. Index & Statistics ->> Rebuild Index会不会覆盖原先Index的WITH选项设置
  13. 机器学习实战——k-近邻算法
  14. git cherry-pick 从其他分支检出指定的commit到当前分支
  15. 各种CSS样式设置细线边框
  16. iP私网地址
  17. Selenium WebDriver Api 知识梳理
  18. 【CentOS】centos7 稳定使用版本,centos镜像的下载
  19. JavaScript正则表达式匹配中英文以及常用标点符号白名单写法
  20. go build 不同系统下的可执行文件

热门文章

  1. CAD使用GetXData读数据(网页版)
  2. python队列的实现
  3. 03JavaScript运算符与表达式
  4. iOS的影片播放 MediaPlayer 和 AVPlayer
  5. css--小白入门篇4
  6. 「 Luogu P2285 」打鼹鼠
  7. UVA - 11214 Guarding the Chessboard(迭代加深搜索)
  8. intel compiler的表现
  9. PAT 1142 Maximal Clique
  10. H5存储------localStorage和sessionStorage