<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一個菜鳥寫的多線程刪除文件的代碼,大家給點意見

      公司圖片服務器某個盤今天又滿了,每次都是用一個控制臺程序去刪文件,我DOS命令不熟,今天突發(fā)奇想用上多線程是不是會快一些呢?然后就寫了些代碼,本菜鳥接觸c#2年多工作1年多。代碼是一個小時寫完的,沒有任何優(yōu)化,只為實現功能,希望大家對于代碼給點意見,本以為用了多線程刪除的速度就會快上一點,但是與原來一個線程沒什么大的變化,是不是IO瓶頸了。
      using System;
      using System.Collections.Generic;
      using System.IO;
      using System.Collections;

      namespace FiledbWrite
      {
          
      class Program
          {
              
      static void Main(string[] args)
              {
                  DateTime timeStart 
      = DateTime.Now;
                  
      string path = System.Configuration.ConfigurationManager.AppSettings["path"];
                 List
      <deletefile> allPath = new List<deletefile>();
                  
      int I = 0;
                  
      foreach (string file in Directory.GetDirectories(path))
                  {
                          deleteFile d 
      = new deleteFile();
                          d.originalDir 
      = file;
                          d.tempDir 
      = file;
                          d.deleteAction 
      = new System.Threading.Thread(d.Action);
                          d.threadNO 
      = I;
                          allPath.Add(d);
                          I
      ++;
                  }
                  
      foreach (deleteFile d in allPath)
                  {
                      
      try
                      {
                          d.deleteAction.Start();
                      }
                      
      catch (System.Exception ex)
                      {
                          Console.WriteLine(ex.Message);
                      }
                  }
                  
      while (true)
                  {
                      
      if (getState(allPath))
                          
      break;
                  }
                  DateTime timeEnd 
      = DateTime.Now;
                  TimeSpan timeSpan 
      = timeEnd - timeStart;
                  Console.WriteLine(
      string.Format("線程數:{0},總用時{1}s", I + 1, timeSpan.Seconds));
                  Console.ReadLine();
              }
              
      //獲取當前所有線程狀態(tài)是否都已停止(刪除完)
              public static bool getState(List<deletefile> d)
              {
                  
      bool over = true;
                  
      foreach (deleteFile ddd in d)
                  {
                      
      if (ddd.deleteAction.IsAlive)
                          
      return false;
                  }
                  
      return over;
              }
          }
          
      //文件刪除功能類 作者頭腦簡單圖省事 使用多個類實現了多線程
          public class deleteFile
          {
              
      //線程編號
              public int threadNO = 0;
              
      public System.Threading.Thread deleteAction;
              
      /// <summary>
              
      /// 臨時目錄
              
      /// </summary>
              public string tempDir = string.Empty;
              
      /// <summary>
              
      /// 原始目錄
              
      /// </summary>
              public string originalDir = string.Empty;
              
      public void Action()
              {
                  
      try
                  {
                      
      //刪除每個文件夾下文件
                      DeleteFolderFile();
                      
      //刪除文件夾
                      Directory.Delete(originalDir, true);
                      
      //停止線程
                      deleteAction.Abort();
                  }
                  
      catch (Exception e)
                  {
                      Console.WriteLine(e.Message);
                  }
              }

              
      public void DeleteFolderFile()
              {
                  
      try
                  {
                      System.IO.File.SetAttributes(tempDir, System.IO.FileAttributes.Normal);
                      
      foreach (string d in Directory.GetFileSystemEntries(tempDir))
                      {
                          System.IO.File.SetAttributes(d, System.IO.FileAttributes.Normal);
                          
      if (File.Exists(d))
                          {
                              FileInfo fi 
      = new FileInfo(d);
                              
      if (fi.Attributes.ToString().IndexOf("ReadOnly"!= -1)//避免只讀文件
                              { fi.Attributes = FileAttributes.Normal; }
                              Console.WriteLine(
      string.Format("當前文件:{0},當前線程:{1}", d, threadNO));
                              File.Delete(d);  
      //刪除文件
                          }
                          
      else
                          {
                              
      try
                              {
                                  tempDir 
      = d;
                                  DeleteFolderFile();
      //遞歸
                              }
                              
      catch (System.Exception ex)
                              {
                                  Console.WriteLine(ex.Message);
                              }
                          }
                      }
                  }
                  
      catch (System.Exception ex)
                  {
                      Console.WriteLine(ex.Message);
                  }
              }
          }

      } 

      看了大家的評論我想說幾句,關于操作系統(tǒng)的東西不是很了解,希望大家可以不吝賜教,貼出這段代碼的主要想法是想讓大家看一下代碼在邏輯上,線程的使用上,語法上,有沒有什么讓人看起來不舒服的地方,或者是不是能用到一些設計模式來“美化”以下代碼。 

      posted @ 2011-05-27 13:30  狂野銅匠C99500  閱讀(4057)  評論(19)    收藏  舉報
      主站蜘蛛池模板: 欧美成本人视频免费播放 | 国产精品中文字幕综合| 久久青青草原精品国产app| 国产精品亚洲综合色区丝瓜 | 成人午夜免费无码视频在线观看| 成人国产亚洲精品天堂av| 欧美日本在线一区二区三区| 国产福利社区一区二区| 99在线视频免费观看| 国产一区二区三区精品综合| 么公的好大好硬好深好爽视频| 国产精品午夜精品福利| 奇米网777狠狠狠俺| 国产熟女老阿姨毛片看爽爽| 国产精品久久蜜臀av| 国产成人午夜在线视频极速观看| 娇妻玩4p被三个男人伺候| 中文字幕日韩人妻一区| 日韩中文字幕免费在线观看| 四虎国产精品永久在线下载| 人人妻人人做人人爽夜欢视频| 国产精品久久久久久久网| 苍井空一区二区三区在线观看| 久久人人妻人人爽人人爽| 和艳妇在厨房好爽在线观看| 亚洲色欲色欲天天天www| 成人亚洲欧美成αⅴ人在线观看| 综合亚洲网| 亚洲高清 一区二区三区| 久久天天躁狠狠躁夜夜躁2o2o| 欧美人成精品网站播放| 精品一卡2卡三卡4卡乱码精品视频| 久久热这里只有精品最新| 中国老熟妇自拍hd发布| 亚洲禁精品一区二区三区| 狠狠色噜噜狠狠亚洲AV| 国产伦人人人人人人性| 欧美怡春院一区二区三区| 无码天堂亚洲国产AV| 日韩人妻无码精品久久| 丁香五月亚洲综合在线国内自拍|