var dir = Directory.GetDirectories("D:\\FileStore1\\","", SearchOption.TopDirectoryOnly);Console.WriteLine($"一共{dir.Length}個目錄");Stopwatch stopwatch =newStopwatch();stopwatch.Start();foreach(var temp in dir){//刪除目錄操作(自己封裝的接口,也可使用Directory.Delete方法)fileStorage.DeleteDirectory("user", temp.Split("\\").Last());}stopwatch.Stop();Console.WriteLine("耗時:"+stopwatch.ElapsedMilliseconds+"毫秒");Console.WriteLine("操作完畢");
運行結果:
然后我們使用Parallel試一下:
var dir = Directory.GetDirectories("D:\\FileStore1\\","", SearchOption.TopDirectoryOnly);Console.WriteLine($"一共{dir.Length}個目錄");Stopwatch stopwatch =newStopwatch();stopwatch.Start();Parallel.ForEach(dir,(temp)=>{fileStorage.DeleteDirectory("user", temp.Split("\\").Last());});stopwatch.Stop();Console.WriteLine("耗時:"+stopwatch.ElapsedMilliseconds+"毫秒");Console.WriteLine("操作完畢");
var dir = Directory.GetDirectories("D:\\FileStore1\\","", SearchOption.TopDirectoryOnly);Console.WriteLine($"一共{dir.Length}個目錄");Stopwatch stopwatch =newStopwatch();stopwatch.Start();foreach(var temp in dir){ThreadPool.QueueUserWorkItem(newWaitCallback((obj)=>{fileStorage.DeleteDirectory("user", temp.Split("\\").Last());}));}stopwatch.Stop();Console.WriteLine("耗時:"+stopwatch.ElapsedMilliseconds+"毫秒");Console.WriteLine("操作完畢");