.NET 4.5 異步IO 相關實例_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:基于.NET 4.5 壓縮的使用
      本篇文章小編為大家介紹,基于.NET 4.5 壓縮的使用。需要的朋友參考下

      在C/S架構中,不管是傳統的winform還是wpf都可能會遇到進行異步操作文件的時候。文件小還好說,直接寫操作代碼

      如果是大文件很多時候做成異步的操作。在界面上顯示一個進度條什么的,后臺使用一個backgroundworker來做。在這里告訴大家在.NET Framework4.5中支持異步IO的操作。大大簡化之前些的異步方法代碼。

      使用backgroundworker代碼

      復制代碼 代碼如下:www.wf0088.com

      View Code

      private void Button_Click_3(object sender, RoutedEventArgs e)
      {
      System.ComponentModel.BackgroundWorker bak = new System.ComponentModel.BackgroundWorker();
      bak.DoWork += bak_DoWork;
      bak.RunWorkerCompleted += bak_RunWorkerCompleted;
      bak.RunWorkerAsync();
      }

      void bak_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
      {
      string sourceDir = @"E:\";
      string endDir = @"F:\";
      foreach (string filename in Directory.EnumerateFiles(sourceDir))
      {
      using (FileStream SourceStream = File.Open(filename, FileMode.Open))
      {
      using (FileStream DestinationStream = File.Create(endDir + filename.Substring(filename.LastIndexOf('\\'))))
      {
      SourceStream.CopyTo(DestinationStream);
      }
      }
      }
      }

      void bak_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
      {
      MessageBox.Show("ok");
      }


      以上應該是最基本的操作了,代碼是不是很多?看看.NET Framework 4.5的寫法吧。
      復制代碼 代碼如下:www.wf0088.com

      private async void Button_Click_2(object sender, RoutedEventArgs e)
      {
      string sourceDir = @"E:\";
      string endDir = @"F:\";
      foreach (string filename in Directory.EnumerateFiles(sourceDir))
      {
      using (FileStream SourceStream = File.Open(filename, FileMode.Open))
      {
      using (FileStream DestinationStream = File.Create(endDir + filename.Substring(filename.LastIndexOf('\\'))))
      {
      await SourceStream.CopyToAsync(DestinationStream);
      }
      }
      }
      MessageBox.Show("ok");
      }

      希望能幫助到一些人。

      分享:關于VS2012自帶的 性能分析 工具使用實例(圖文介紹)
      本篇文章小編為大家介紹,關于VS2012自帶的 性能分析 工具使用實例(圖文介紹),需要的朋友參考下

      來源:模板無憂//所屬分類:.Net教程/更新時間:2013-04-22
      相關.Net教程