如题:  谁能提供一个C# 异步文件读写的显示进度条的实例。在做这个的时候遇到点小问题。。

解决方案 »

  1.   

    用 BackgroundWorker 控件做,什么都满足了,一点问题没有应该是吧
      

  2.   

     private void Form1_Load(object sender, EventArgs e)
            {
                DirectoryInfo dirInfo = new DirectoryInfo(@"C:\WINDOWS");
                
               backgroundWorker1.RunWorkerAsync(dirInfo);           
            }       
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                DirectoryInfo dirInfo = e.Argument as DirectoryInfo;            FileInfo[] fileArray =dirInfo.GetFiles();
                int intTotalCount = fileArray.Length;
           
                int intFileRead = 0;
                foreach (FileInfo file in fileArray)
                {
                    System.Threading.Thread.Sleep(10);//方面看到效果
                    intFileRead++;
                    if(intFileRead<100)//这个暂时这样写。
                        backgroundWorker1.ReportProgress(intFileRead);
                }        }        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
            {            progressBar1.Value = e.ProgressPercentage;
                
            }
      

  3.   

    到MSDN,或去官网下载该控件,好像MS提供了这种控件
      

  4.   

    用progressbar+backgroundworker实现 自己Google一下一大堆 
      

  5.   


    string path = "D:\\TDDOWNLOAD\\AdobePhotoshopCS3.rar";            
                FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read);  
                BinaryReader binaryreader = new BinaryReader(file);
                byte[] b = new byte[4098];
                int data = 0; ;
                int bodylenght = (int)file.Length;
                int uoi = 0;
                this.progressBar1.Maximum = bodylenght;            while ((data = binaryreader.Read(b, 0,4098)) != 0)      //这个注意是将文件写成流的形式
                {
                    uoi = uoi + 4098;
                   
                    if (uoi >= bodylenght)
                        this.progressBar1.Value = bodylenght;
                    else
                        this.progressBar1.Value = uoi;
                }
                this.label1.Text = uoi.ToString();
        
                binaryreader.Close();
                file.Close();